diff options
author | Marek Vasut <marek.vasut+renesas@gmail.com> | 2019-06-14 15:52:45 +0200 |
---|---|---|
committer | Marek Vasut <marek.vasut+renesas@gmail.com> | 2019-06-17 15:13:22 +0200 |
commit | ed46cdb4b76ee5b6c312e6013a1479bf753f9870 (patch) | |
tree | b3062f7a0e5e3cf297856aae01fe440b3010050d /drivers/staging/renesas/rcar/qos/H3/qos_init_h3_v30.c | |
parent | d875f93642b6c9641316024af6a215f0151dad62 (diff) | |
download | trusted-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.c | 83 |
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; |