diff options
Diffstat (limited to 'target/linux/mediatek/patches-4.14/0118-soc-mediatek-pwrap-add-pwrap_write32-for-writing-in-.patch')
-rw-r--r-- | target/linux/mediatek/patches-4.14/0118-soc-mediatek-pwrap-add-pwrap_write32-for-writing-in-.patch | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/target/linux/mediatek/patches-4.14/0118-soc-mediatek-pwrap-add-pwrap_write32-for-writing-in-.patch b/target/linux/mediatek/patches-4.14/0118-soc-mediatek-pwrap-add-pwrap_write32-for-writing-in-.patch deleted file mode 100644 index 0fb60f37bb..0000000000 --- a/target/linux/mediatek/patches-4.14/0118-soc-mediatek-pwrap-add-pwrap_write32-for-writing-in-.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 635f800995e4ea2a18ce7520d816dab018ce091f Mon Sep 17 00:00:00 2001 -From: Sean Wang <sean.wang@mediatek.com> -Date: Wed, 18 Oct 2017 16:28:44 +0800 -Subject: [PATCH 118/224] soc: mediatek: pwrap: add pwrap_write32 for writing - in 32-bit mode - -Some regulators such as MediaTek MT6380 also has to be written in -32-bit mode. So the patch adds pwrap_write32, rename old pwrap_write -into pwrap_write16 and one additional 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 | 70 +++++++++++++++++++++++++++--------- - 1 file changed, 54 insertions(+), 16 deletions(-) - ---- a/drivers/soc/mediatek/mtk-pmic-wrap.c -+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c -@@ -507,6 +507,7 @@ struct pwrap_slv_type { - * which type is used by the detection through device tree. - */ - int (*pwrap_read)(struct pmic_wrapper *wrp, u32 adr, u32 *rdata); -+ int (*pwrap_write)(struct pmic_wrapper *wrp, u32 adr, u32 wdata); - }; - - struct pmic_wrapper { -@@ -601,22 +602,6 @@ static int pwrap_wait_for_state(struct p - } while (1); - } - --static int pwrap_write(struct pmic_wrapper *wrp, u32 adr, u32 wdata) --{ -- int ret; -- -- ret = pwrap_wait_for_state(wrp, pwrap_is_fsm_idle); -- if (ret) { -- pwrap_leave_fsm_vldclr(wrp); -- return ret; -- } -- -- pwrap_writel(wrp, (1 << 31) | ((adr >> 1) << 16) | wdata, -- PWRAP_WACS2_CMD); -- -- return 0; --} -- - static int pwrap_read16(struct pmic_wrapper *wrp, u32 adr, u32 *rdata) - { - int ret; -@@ -673,6 +658,56 @@ static int pwrap_read(struct pmic_wrappe - return wrp->slave->pwrap_read(wrp, adr, rdata); - } - -+static int pwrap_write16(struct pmic_wrapper *wrp, u32 adr, u32 wdata) -+{ -+ int ret; -+ -+ ret = pwrap_wait_for_state(wrp, pwrap_is_fsm_idle); -+ if (ret) { -+ pwrap_leave_fsm_vldclr(wrp); -+ return ret; -+ } -+ -+ pwrap_writel(wrp, (1 << 31) | ((adr >> 1) << 16) | wdata, -+ PWRAP_WACS2_CMD); -+ -+ return 0; -+} -+ -+static int pwrap_write32(struct pmic_wrapper *wrp, u32 adr, u32 wdata) -+{ -+ int ret, msb, rdata; -+ -+ 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, (1 << 31) | (msb << 30) | (adr << 16) | -+ ((wdata >> (msb * 16)) & 0xffff), -+ PWRAP_WACS2_CMD); -+ -+ /* -+ * The pwrap_read operation is the requirement of hardware used -+ * for the synchronization between two successive 16-bit -+ * pwrap_writel operations composing one 32-bit bus writing. -+ * Otherwise, we'll find the result fails on the lower 16-bit -+ * pwrap writing. -+ */ -+ if (!msb) -+ pwrap_read(wrp, adr, &rdata); -+ } -+ -+ return 0; -+} -+ -+static int pwrap_write(struct pmic_wrapper *wrp, u32 adr, u32 wdata) -+{ -+ return wrp->slave->pwrap_write(wrp, adr, wdata); -+} -+ - static int pwrap_regmap_read(void *context, u32 adr, u32 *rdata) - { - return pwrap_read(context, adr, rdata); -@@ -1082,18 +1117,21 @@ static const struct pwrap_slv_type pmic_ - .dew_regs = mt6323_regs, - .type = PMIC_MT6323, - .pwrap_read = pwrap_read16, -+ .pwrap_write = pwrap_write16, - }; - - static const struct pwrap_slv_type pmic_mt6380 = { - .dew_regs = NULL, - .type = PMIC_MT6380, - .pwrap_read = pwrap_read32, -+ .pwrap_write = pwrap_write32, - }; - - static const struct pwrap_slv_type pmic_mt6397 = { - .dew_regs = mt6397_regs, - .type = PMIC_MT6397, - .pwrap_read = pwrap_read16, -+ .pwrap_write = pwrap_write16, - }; - - static const struct of_device_id of_slave_match_tbl[] = { |