On 07/02/16 11:42, John Crispin wrote:
This patch adds a new struct pwrap_slv_type that we use to store the slave
specific data. The patch adds 2 new helper functions to access the dew
registers. The slave type is looked up via the wrappers child node.

Signed-off-by: John Crispin <[email protected]>
---
Changes in V5
* drop the dew i/o wrappers

Changed in V4
* drop unused MT8173 specifc variable declarations

  drivers/soc/mediatek/mtk-pmic-wrap.c |  157 ++++++++++++++++++++++++----------
  1 file changed, 110 insertions(+), 47 deletions(-)

diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c 
b/drivers/soc/mediatek/mtk-pmic-wrap.c
index fbf94e4..2628271 100644
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
@@ -69,33 +69,52 @@
                                          PWRAP_WDT_SRC_EN_HARB_STAUPD_DLE | \
                                          PWRAP_WDT_SRC_EN_HARB_STAUPD_ALE)

-/* macro for slave device wrapper registers */
-#define PWRAP_DEW_BASE                 0xbc00
-#define PWRAP_DEW_EVENT_OUT_EN         (PWRAP_DEW_BASE + 0x0)
-#define PWRAP_DEW_DIO_EN               (PWRAP_DEW_BASE + 0x2)
-#define PWRAP_DEW_EVENT_SRC_EN         (PWRAP_DEW_BASE + 0x4)
-#define PWRAP_DEW_EVENT_SRC            (PWRAP_DEW_BASE + 0x6)
-#define PWRAP_DEW_EVENT_FLAG           (PWRAP_DEW_BASE + 0x8)
-#define PWRAP_DEW_READ_TEST            (PWRAP_DEW_BASE + 0xa)
-#define PWRAP_DEW_WRITE_TEST           (PWRAP_DEW_BASE + 0xc)
-#define PWRAP_DEW_CRC_EN               (PWRAP_DEW_BASE + 0xe)
-#define PWRAP_DEW_CRC_VAL              (PWRAP_DEW_BASE + 0x10)
-#define PWRAP_DEW_MON_GRP_SEL          (PWRAP_DEW_BASE + 0x12)
-#define PWRAP_DEW_MON_FLAG_SEL         (PWRAP_DEW_BASE + 0x14)
-#define PWRAP_DEW_EVENT_TEST           (PWRAP_DEW_BASE + 0x16)
-#define PWRAP_DEW_CIPHER_KEY_SEL       (PWRAP_DEW_BASE + 0x18)
-#define PWRAP_DEW_CIPHER_IV_SEL                (PWRAP_DEW_BASE + 0x1a)
-#define PWRAP_DEW_CIPHER_LOAD          (PWRAP_DEW_BASE + 0x1c)
-#define PWRAP_DEW_CIPHER_START         (PWRAP_DEW_BASE + 0x1e)
-#define PWRAP_DEW_CIPHER_RDY           (PWRAP_DEW_BASE + 0x20)
-#define PWRAP_DEW_CIPHER_MODE          (PWRAP_DEW_BASE + 0x22)
-#define PWRAP_DEW_CIPHER_SWRST         (PWRAP_DEW_BASE + 0x24)
-#define PWRAP_MT8173_DEW_CIPHER_IV0    (PWRAP_DEW_BASE + 0x26)
-#define PWRAP_MT8173_DEW_CIPHER_IV1    (PWRAP_DEW_BASE + 0x28)
-#define PWRAP_MT8173_DEW_CIPHER_IV2    (PWRAP_DEW_BASE + 0x2a)
-#define PWRAP_MT8173_DEW_CIPHER_IV3    (PWRAP_DEW_BASE + 0x2c)
-#define PWRAP_MT8173_DEW_CIPHER_IV4    (PWRAP_DEW_BASE + 0x2e)
-#define PWRAP_MT8173_DEW_CIPHER_IV5    (PWRAP_DEW_BASE + 0x30)
+/* defines for slave device wrapper registers */
+enum dew_regs {
+       PWRAP_DEW_BASE,
+       PWRAP_DEW_EVENT_OUT_EN,
+       PWRAP_DEW_DIO_EN,
+       PWRAP_DEW_EVENT_SRC_EN,
+       PWRAP_DEW_EVENT_SRC,
+       PWRAP_DEW_EVENT_FLAG,
+       PWRAP_DEW_READ_TEST,
+       PWRAP_DEW_WRITE_TEST,
+       PWRAP_DEW_CRC_EN,
+       PWRAP_DEW_CRC_VAL,
+       PWRAP_DEW_MON_GRP_SEL,
+       PWRAP_DEW_MON_FLAG_SEL,
+       PWRAP_DEW_EVENT_TEST,
+       PWRAP_DEW_CIPHER_KEY_SEL,
+       PWRAP_DEW_CIPHER_IV_SEL,
+       PWRAP_DEW_CIPHER_LOAD,
+       PWRAP_DEW_CIPHER_START,
+       PWRAP_DEW_CIPHER_RDY,
+       PWRAP_DEW_CIPHER_MODE,
+       PWRAP_DEW_CIPHER_SWRST,
+};

Comparing with the implementation of MT6323, the following registers seem MT6397 only:
PWRAP_DEW_EVENT_OUT_EN
PWRAP_DEW_EVENT_SRC_EN,
PWRAP_DEW_EVENT_SRC
PWRAP_DEW_EVENT_FLAG
PWRAP_DEW_MON_FLAG_SEL
PWRAP_DEW_EVENT_TEST
PWRAP_DEW_CIPHER_LOAD
PWRAP_DEW_CIPHER_START

Can you please check that and put the ones which are really MT6397 only in a separate paragraph?

Thanks,
Matthias

Reply via email to