Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1569713
| Path | csiph.com!1.us.feeder.erje.net!feeder.erje.net!2.eu.feeder.erje.net!news.roellig-ltd.de!open-news-network.org!weretis.net!feeder4.news.weretis.net!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Marek Szyprowski <m.szyprowski@samsung.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH v3 3/7] pinctrl: samsung: Add support for pad retention control for Exynos5433 SoCs |
| Date | Mon, 30 Jan 2017 14:00:03 +0100 |
| Message-ID | <t5jIT-45O-41@gated-at.bofh.it> (permalink) |
| References | <t5jzb-42b-7@gated-at.bofh.it> <t5jIT-45O-43@gated-at.bofh.it> <t5jzb-42b-7@gated-at.bofh.it> |
| X-Original-To | linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org |
| X-Auditid | cbfec7ef-f79d26d00000420c-d8-588f33d1ff43 |
| X-Mailer | git-send-email 1.9.1 |
| X-Brightmail-Tracker | H4sIAAAAAAAAA+NgFnrMIsWRmVeSWpSXmKPExsWy7djPc7oXjfsjDI73G1hsnLGe1eL8+Q3s Fve/HmW0mPJnOZPFpsfXWC02z//DaHF51xw2ixnn9zFZrD1yl93i8Jt2VotVu/4wOnB77Jx1 l91j06pONo871/aweWxeUu/Rt2UVo8fnTXIBbFFcNimpOZllqUX6dglcGS9OzWUqeGVUMWdr C2sD40ztLkZODgkBE4ldt1awQdhiEhfurQeyuTiEBJYxSvzre8EO4XxmlDh79TkTTMfRQ40s cFVPP92BchqYJGY0LgKbxSZgKNH1tgtslohAO6PE3b4OJhCHWWATk0TbkhPMIFXCAqkSl15+ YQWxWQRUJW6uegoW5xXwkOjfNIMVYp+cxMljk8FsTgFPiS1PDzGDDJIQmM4u0b36A9AKDiBH VmLTAWaIeheJx61n2SFsYYlXx7dA2TISnR0HoX7oZ5RoaoWGwAxGiXNveSFsa4nDxy+C7WIW 4JOYtG06M8R4XomONiGIEg+J3jOdUGMcJX5t/8UM8f0cRol5s34wT2CUWcDIsIpRJLW0ODc9 tdhQrzgxt7g0L10vOT93EyMw6k//O/5+B+PT5pBDjAIcjEo8vA2CfRFCrIllxZW5hxglOJiV RHhPqvZHCPGmJFZWpRblxxeV5qQWH2KU5mBREufdu+BKuJBAemJJanZqakFqEUyWiYNTqoGx fl6RuZpD5U3FK9/yY1pWOy1Yv1x1q/H7KVJl3uv7l0k9XDHbe9oBp5z+vVxBB44XZ0w8aCMo NNtx9rQg3pY/DiEtkh8mGoqIPL2S8SvYN5pnIierkoXS7m+sn6qSw/7zm255andv1sXMcuVH 34/xb1Of5cL5KKJw27ee7wJqVSGT3K71t15SYinOSDTUYi4qTgQArQxP6/YCAAA= |
| X-Brightmail-Tracker | H4sIAAAAAAAAA+NgFmpmkeLIzCtJLcpLzFFi42I5/e/4VV1Bk/4Ig2dTzC02zljPanH+/AZ2 i/tfjzJaTPmznMli0+NrrBab5/9htLi8aw6bxYzz+5gs1h65y25x+E07q8WqXX8YHbg9ds66 y+6xaVUnm8eda3vYPDYvqffo27KK0ePzJrkAtig3m4zUxJTUIoXUvOT8lMy8dFul0BA3XQsl hbzE3FRbpQhd35AgJYWyxJxSIM/IAA04OAe4Byvp2yW4Zbw4NZep4JVRxZytLawNjDO1uxg5 OSQETCSOHmpkgbDFJC7cW8/WxcjFISSwhFHi8vdNUE4Tk8SVpYfAqtgEDCW63naBJUQE2hkl Xt++xgTiMAtsYZLo2nSRHaRKWCBV4srcz4wgNouAqsTNVU+ZQWxeAQ+J/k0zWCH2yUmcPDYZ zOYU8JTY8vQQWI0QUM35G/9ZJjDyLmBkWMUoklpanJueW2yoV5yYW1yal66XnJ+7iREYAduO /dy8g/HSxuBDjAIcjEo8vDeE+yKEWBPLiitzDzFKcDArifCeVO2PEOJNSaysSi3Kjy8qzUkt PsRoCnTURGYp0eR8YHTmlcQbmhiaWxoaGVtYmBsZKYnzlny4Ei4kkJ5YkpqdmlqQWgTTx8TB KdXAKPH3c8GNZRO+vX55pFVtawDHjuM33x0xCtDP+bNE70lg0f1926adSlT8c/me/PLVVv4z +KbN2N10NjpCZOee88IMkh76tcJLdT/KFHNHKnz9sOXlm+L3O7TKVlXzCXyeVKt0/daDjg/K nxdPrUy+UL4taRdPfkJU7zl/ru74tHrPN1tCD7B0v1JiKc5INNRiLipOBACxdx95lgIAAA== |
| X-Mtr | 20000000000000000@CPGS |
| X-Cms-Mailid | 20170130123838eucas1p1fdae7ffe2af981607ec389f27c46f689 |
| X-Msg-Generator | CA |
| X-Sender-IP | 182.198.249.179 |
| X-Local-Sender | Marek SzyprowskiSRPOL-Kernel (TP)삼성전자Senior Software Engineer |
| X-Global-Sender | Marek SzyprowskiSRPOL-Kernel (TP)Samsung ElectronicsSenior Software Engineer |
| X-Sender-Code | C10EHQC10CD02CD027392 |
| Cms-Type | 201P |
| X-Hopcount | 7 |
| X-Cms-Rootmailid | 20170130123838eucas1p1fdae7ffe2af981607ec389f27c46f689 |
| X-Rootmtr | 20170130123838eucas1p1fdae7ffe2af981607ec389f27c46f689 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 153 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | Marek Szyprowski <m.szyprowski@samsung.com>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Krzysztof Kozlowski <krzk@kernel.org>, Linus Walleij <linus.walleij@linaro.org>, Tomasz Figa <tomasz.figa@gmail.com>, Lee Jones <lee.jones@linaro.org>, Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> |
| X-Original-Date | Mon, 30 Jan 2017 13:38:24 +0100 |
| X-Original-Message-ID | <1485779908-32147-4-git-send-email-m.szyprowski@samsung.com> |
| X-Original-References | <1485779908-32147-1-git-send-email-m.szyprowski@samsung.com> <CGME20170130123838eucas1p1fdae7ffe2af981607ec389f27c46f689@eucas1p1.samsung.com> <1485779908-32147-1-git-send-email-m.szyprowski@samsung.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1569713 |
Show key headers only | View raw
This patch adds support for retention control for Exynos5433 SoCs. Three
groups of pins has been defined for retention control: common shared group
for ALIVE, CPIF, eSE, FINGER, IMEM, NFC, PERIC, TOUCH pin banks and
separate control for FSYS and AUD pin banks, for which PMU retention
registers match whole banks.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
---
drivers/pinctrl/samsung/pinctrl-exynos.c | 58 ++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index fa3802970570..7b0e6cc35e04 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -1551,6 +1551,54 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
EXYNOS5433_PIN_BANK_EINTG(3, 0x000, "gpj1", 0x00),
};
+/* PMU pin retention groups registers for Exynos5433 (without audio & fsys) */
+static const u32 exynos5433_retention_regs[] = {
+ EXYNOS5433_PAD_RETENTION_TOP_OPTION,
+ EXYNOS5433_PAD_RETENTION_UART_OPTION,
+ EXYNOS5433_PAD_RETENTION_EBIA_OPTION,
+ EXYNOS5433_PAD_RETENTION_EBIB_OPTION,
+ EXYNOS5433_PAD_RETENTION_SPI_OPTION,
+ EXYNOS5433_PAD_RETENTION_MIF_OPTION,
+ EXYNOS5433_PAD_RETENTION_USBXTI_OPTION,
+ EXYNOS5433_PAD_RETENTION_BOOTLDO_OPTION,
+ EXYNOS5433_PAD_RETENTION_UFS_OPTION,
+ EXYNOS5433_PAD_RETENTION_FSYSGENIO_OPTION,
+};
+
+static const struct samsung_retention_data exynos5433_retention_data __initconst = {
+ .regs = exynos5433_retention_regs,
+ .nr_regs = ARRAY_SIZE(exynos5433_retention_regs),
+ .value = EXYNOS_WAKEUP_FROM_LOWPWR,
+ .refcnt = &exynos_shared_retention_refcnt,
+ .init = exynos_retention_init,
+};
+
+/* PMU retention control for audio pins can be tied to audio pin bank */
+static const u32 exynos5433_audio_retention_regs[] = {
+ EXYNOS5433_PAD_RETENTION_AUD_OPTION,
+};
+
+static const struct samsung_retention_data exynos5433_audio_retention_data __initconst = {
+ .regs = exynos5433_audio_retention_regs,
+ .nr_regs = ARRAY_SIZE(exynos5433_audio_retention_regs),
+ .value = EXYNOS_WAKEUP_FROM_LOWPWR,
+ .init = exynos_retention_init,
+};
+
+/* PMU retention control for mmc pins can be tied to fsys pin bank */
+static const u32 exynos5433_fsys_retention_regs[] = {
+ EXYNOS5433_PAD_RETENTION_MMC0_OPTION,
+ EXYNOS5433_PAD_RETENTION_MMC1_OPTION,
+ EXYNOS5433_PAD_RETENTION_MMC2_OPTION,
+};
+
+static const struct samsung_retention_data exynos5433_fsys_retention_data __initconst = {
+ .regs = exynos5433_fsys_retention_regs,
+ .nr_regs = ARRAY_SIZE(exynos5433_fsys_retention_regs),
+ .value = EXYNOS_WAKEUP_FROM_LOWPWR,
+ .init = exynos_retention_init,
+};
+
/*
* Samsung pinctrl driver data for Exynos5433 SoC. Exynos5433 SoC includes
* ten gpio/pin-mux/pinconfig controllers.
@@ -1564,6 +1612,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
.nr_ext_resources = 1,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 1 data */
.pin_banks = exynos5433_pin_banks1,
@@ -1571,6 +1620,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_audio_retention_data,
}, {
/* pin-controller instance 2 data */
.pin_banks = exynos5433_pin_banks2,
@@ -1578,6 +1628,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 3 data */
.pin_banks = exynos5433_pin_banks3,
@@ -1585,6 +1636,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 4 data */
.pin_banks = exynos5433_pin_banks4,
@@ -1592,6 +1644,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 5 data */
.pin_banks = exynos5433_pin_banks5,
@@ -1599,6 +1652,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_fsys_retention_data,
}, {
/* pin-controller instance 6 data */
.pin_banks = exynos5433_pin_banks6,
@@ -1606,6 +1660,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 7 data */
.pin_banks = exynos5433_pin_banks7,
@@ -1613,6 +1668,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 8 data */
.pin_banks = exynos5433_pin_banks8,
@@ -1620,6 +1676,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
}, {
/* pin-controller instance 9 data */
.pin_banks = exynos5433_pin_banks9,
@@ -1627,6 +1684,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
.eint_gpio_init = exynos_eint_gpio_init,
.suspend = exynos_pinctrl_suspend,
.resume = exynos_pinctrl_resume,
+ .retention_data = &exynos5433_retention_data,
},
};
--
1.9.1
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
[PATCH v3 3/7] pinctrl: samsung: Add support for pad retention control for Exynos5433 SoCs Marek Szyprowski <m.szyprowski@samsung.com> - 2017-01-30 14:00 +0100
csiph-web