diff options
Diffstat (limited to 'target/linux/mediatek/patches-4.14/0117-soc-mediatek-pwrap-add-pwrap_read32-for-reading-in-3.patch')
-rw-r--r-- | target/linux/mediatek/patches-4.14/0117-soc-mediatek-pwrap-add-pwrap_read32-for-reading-in-3.patch | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/target/linux/mediatek/patches-4.14/0117-soc-mediatek-pwrap-add-pwrap_read32-for-reading-in-3.patch b/target/linux/mediatek/patches-4.14/0117-soc-mediatek-pwrap-add-pwrap_read32-for-reading-in-3.patch deleted file mode 100644 index ce0b0fe473..0000000000 --- a/target/linux/mediatek/patches-4.14/0117-soc-mediatek-pwrap-add-pwrap_read32-for-reading-in-3.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 9c37953bd08daa3ca227098d763e980d1898add3 Mon Sep 17 00:00:00 2001 -From: Sean Wang <sean.wang@mediatek.com> -Date: Wed, 18 Oct 2017 16:28:43 +0800 -Subject: [PATCH 117/224] soc: mediatek: pwrap: add pwrap_read32 for reading in - 32-bit mode - -Some regulators such as MediaTek MT6380 has to be read in 32-bit mode. -So the patch adds pwrap_read32, rename old pwrap_read into pwrap_read16 -and one function pointer is introduced for increasing flexibility allowing -the determination which mode is used by the pwrap slave detection through -device tree. - -Signed-off-by: Chenglin Xu <chenglin.xu@mediatek.com> -Signed-off-by: Chen Zhong <chen.zhong@mediatek.com> -Signed-off-by: Sean Wang <sean.wang@mediatek.com> -Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> ---- - drivers/soc/mediatek/mtk-pmic-wrap.c | 55 +++++++++++++++++++++++++++++++++++- - 1 file changed, 54 insertions(+), 1 deletion(-) - ---- a/drivers/soc/mediatek/mtk-pmic-wrap.c -+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c -@@ -487,6 +487,7 @@ static int mt8135_regs[] = { - - enum pmic_type { - PMIC_MT6323, -+ PMIC_MT6380, - PMIC_MT6397, - }; - -@@ -496,9 +497,16 @@ enum pwrap_type { - PWRAP_MT8173, - }; - -+struct pmic_wrapper; - struct pwrap_slv_type { - const u32 *dew_regs; - enum pmic_type type; -+ /* -+ * pwrap operations are highly associated with the PMIC types, -+ * so the pointers added increases flexibility allowing determination -+ * which type is used by the detection through device tree. -+ */ -+ int (*pwrap_read)(struct pmic_wrapper *wrp, u32 adr, u32 *rdata); - }; - - struct pmic_wrapper { -@@ -609,7 +617,7 @@ static int pwrap_write(struct pmic_wrapp - return 0; - } - --static int pwrap_read(struct pmic_wrapper *wrp, u32 adr, u32 *rdata) -+static int pwrap_read16(struct pmic_wrapper *wrp, u32 adr, u32 *rdata) - { - int ret; - -@@ -632,6 +640,39 @@ static int pwrap_read(struct pmic_wrappe - return 0; - } - -+static int pwrap_read32(struct pmic_wrapper *wrp, u32 adr, u32 *rdata) -+{ -+ int ret, msb; -+ -+ *rdata = 0; -+ for (msb = 0; msb < 2; msb++) { -+ ret = pwrap_wait_for_state(wrp, pwrap_is_fsm_idle); -+ if (ret) { -+ pwrap_leave_fsm_vldclr(wrp); -+ return ret; -+ } -+ -+ pwrap_writel(wrp, ((msb << 30) | (adr << 16)), -+ PWRAP_WACS2_CMD); -+ -+ ret = pwrap_wait_for_state(wrp, pwrap_is_fsm_vldclr); -+ if (ret) -+ return ret; -+ -+ *rdata += (PWRAP_GET_WACS_RDATA(pwrap_readl(wrp, -+ PWRAP_WACS2_RDATA)) << (16 * msb)); -+ -+ pwrap_writel(wrp, 1, PWRAP_WACS2_VLDCLR); -+ } -+ -+ return 0; -+} -+ -+static int pwrap_read(struct pmic_wrapper *wrp, u32 adr, u32 *rdata) -+{ -+ return wrp->slave->pwrap_read(wrp, adr, rdata); -+} -+ - static int pwrap_regmap_read(void *context, u32 adr, u32 *rdata) - { - return pwrap_read(context, adr, rdata); -@@ -752,6 +793,8 @@ static int pwrap_mt2701_init_reg_clock(s - pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_START); - pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_END); - break; -+ default: -+ break; - } - - return 0; -@@ -815,6 +858,8 @@ static int pwrap_init_cipher(struct pmic - pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_CIPHER_EN], - 0x1); - break; -+ default: -+ break; - } - - /* wait for cipher data ready@AP */ -@@ -1036,11 +1081,19 @@ static const struct regmap_config pwrap_ - static const struct pwrap_slv_type pmic_mt6323 = { - .dew_regs = mt6323_regs, - .type = PMIC_MT6323, -+ .pwrap_read = pwrap_read16, -+}; -+ -+static const struct pwrap_slv_type pmic_mt6380 = { -+ .dew_regs = NULL, -+ .type = PMIC_MT6380, -+ .pwrap_read = pwrap_read32, - }; - - static const struct pwrap_slv_type pmic_mt6397 = { - .dew_regs = mt6397_regs, - .type = PMIC_MT6397, -+ .pwrap_read = pwrap_read16, - }; - - static const struct of_device_id of_slave_match_tbl[] = { |