aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut+renesas@gmail.com>2019-06-14 15:52:45 +0200
committerMarek Vasut <marek.vasut+renesas@gmail.com>2019-06-17 15:13:22 +0200
commited46cdb4b76ee5b6c312e6013a1479bf753f9870 (patch)
treeb3062f7a0e5e3cf297856aae01fe440b3010050d /drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c
parentd875f93642b6c9641316024af6a215f0151dad62 (diff)
downloadtrusted-firmware-a-ed46cdb4b76ee5b6c312e6013a1479bf753f9870.tar.gz
rcar_gen3: drivers: qos: H3: Configure DBSC QoS from a table
Convert the DBSC QoS setting function to a simple table of register-value pairs and pass it to common rcar_qos_dbsc_setting() to write those values to matching registers. Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Change-Id: I62b133ea4f4129a641b779a782938976ad52fbfe
Diffstat (limited to 'drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c')
-rw-r--r--drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c83
1 files changed, 38 insertions, 45 deletions
diff --git a/drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c b/drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c
index 7147a9da4f..1fe6182b64 100644
--- a/drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c
+++ b/drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c
@@ -60,61 +60,54 @@
#endif
-static void dbsc_setting(void)
-{
- /* Register write enable */
- io_write_32(DBSC_DBSYSCNT0, 0x00001234U);
-
+struct rcar_gen3_dbsc_qos_settings h3_v30_qos[] = {
/* BUFCAM settings */
- io_write_32(DBSC_DBCAM0CNF1, 0x00043218U);
- io_write_32(DBSC_DBCAM0CNF2, 0x000000F4U);
- io_write_32(DBSC_DBCAM0CNF3, 0x00000000U);
- io_write_32(DBSC_DBSCHCNT0, 0x000F0037U);
- io_write_32(DBSC_DBSCHSZ0, 0x00000001U);
- io_write_32(DBSC_DBSCHRW0, 0x22421111U);
+ { DBSC_DBCAM0CNF1, 0x00043218U },
+ { DBSC_DBCAM0CNF2, 0x000000F4U },
+ { DBSC_DBCAM0CNF3, 0x00000000U },
+ { DBSC_DBSCHCNT0, 0x000F0037U },
+ { DBSC_DBSCHSZ0, 0x00000001U },
+ { DBSC_DBSCHRW0, 0x22421111U },
/* DDR3 */
- io_write_32(DBSC_SCFCTST2, 0x012F1123U);
+ { DBSC_SCFCTST2, 0x012F1123U },
/* QoS Settings */
- io_write_32(DBSC_DBSCHQOS00, 0x00000F00U);
- io_write_32(DBSC_DBSCHQOS01, 0x00000B00U);
- io_write_32(DBSC_DBSCHQOS02, 0x00000000U);
- io_write_32(DBSC_DBSCHQOS03, 0x00000000U);
- io_write_32(DBSC_DBSCHQOS40, 0x00000300U);
- io_write_32(DBSC_DBSCHQOS41, 0x000002F0U);
- io_write_32(DBSC_DBSCHQOS42, 0x00000200U);
- io_write_32(DBSC_DBSCHQOS43, 0x00000100U);
- io_write_32(DBSC_DBSCHQOS90, 0x00000100U);
- io_write_32(DBSC_DBSCHQOS91, 0x000000F0U);
- io_write_32(DBSC_DBSCHQOS92, 0x000000A0U);
- io_write_32(DBSC_DBSCHQOS93, 0x00000040U);
- io_write_32(DBSC_DBSCHQOS120, 0x00000040U);
- io_write_32(DBSC_DBSCHQOS121, 0x00000030U);
- io_write_32(DBSC_DBSCHQOS122, 0x00000020U);
- io_write_32(DBSC_DBSCHQOS123, 0x00000010U);
- io_write_32(DBSC_DBSCHQOS130, 0x00000100U);
- io_write_32(DBSC_DBSCHQOS131, 0x000000F0U);
- io_write_32(DBSC_DBSCHQOS132, 0x000000A0U);
- io_write_32(DBSC_DBSCHQOS133, 0x00000040U);
- io_write_32(DBSC_DBSCHQOS140, 0x000000C0U);
- io_write_32(DBSC_DBSCHQOS141, 0x000000B0U);
- io_write_32(DBSC_DBSCHQOS142, 0x00000080U);
- io_write_32(DBSC_DBSCHQOS143, 0x00000040U);
- io_write_32(DBSC_DBSCHQOS150, 0x00000040U);
- io_write_32(DBSC_DBSCHQOS151, 0x00000030U);
- io_write_32(DBSC_DBSCHQOS152, 0x00000020U);
- io_write_32(DBSC_DBSCHQOS153, 0x00000010U);
-
- /* Register write protect */
- io_write_32(DBSC_DBSYSCNT0, 0x00000000U);
-}
+ { DBSC_DBSCHQOS00, 0x00000F00U },
+ { DBSC_DBSCHQOS01, 0x00000B00U },
+ { DBSC_DBSCHQOS02, 0x00000000U },
+ { DBSC_DBSCHQOS03, 0x00000000U },
+ { DBSC_DBSCHQOS40, 0x00000300U },
+ { DBSC_DBSCHQOS41, 0x000002F0U },
+ { DBSC_DBSCHQOS42, 0x00000200U },
+ { DBSC_DBSCHQOS43, 0x00000100U },
+ { DBSC_DBSCHQOS90, 0x00000100U },
+ { DBSC_DBSCHQOS91, 0x000000F0U },
+ { DBSC_DBSCHQOS92, 0x000000A0U },
+ { DBSC_DBSCHQOS93, 0x00000040U },
+ { DBSC_DBSCHQOS120, 0x00000040U },
+ { DBSC_DBSCHQOS121, 0x00000030U },
+ { DBSC_DBSCHQOS122, 0x00000020U },
+ { DBSC_DBSCHQOS123, 0x00000010U },
+ { DBSC_DBSCHQOS130, 0x00000100U },
+ { DBSC_DBSCHQOS131, 0x000000F0U },
+ { DBSC_DBSCHQOS132, 0x000000A0U },
+ { DBSC_DBSCHQOS133, 0x00000040U },
+ { DBSC_DBSCHQOS140, 0x000000C0U },
+ { DBSC_DBSCHQOS141, 0x000000B0U },
+ { DBSC_DBSCHQOS142, 0x00000080U },
+ { DBSC_DBSCHQOS143, 0x00000040U },
+ { DBSC_DBSCHQOS150, 0x00000040U },
+ { DBSC_DBSCHQOS151, 0x00000030U },
+ { DBSC_DBSCHQOS152, 0x00000020U },
+ { DBSC_DBSCHQOS153, 0x00000010U },
+};
void qos_init_h3_v30(void)
{
unsigned int split_area;
- dbsc_setting();
+ rcar_qos_dbsc_setting(h3_v30_qos, ARRAY_SIZE(h3_v30_qos), true);
#if RCAR_DRAM_LPDDR4_MEMCONF == 0 /* 1GB */
split_area = 0x1BU;