From: Masahiro Yamada <yamada.masahiro@socionext.com> To: linux-clk@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>, Philipp Zabel <p.zabel@pengutronix.de> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 20/21] reset: uniphier: add reset driver for Media I/O block on UniPhier SoCs Date: Tue, 10 May 2016 18:51:01 +0900 [thread overview] Message-ID: <1462873862-30940-21-git-send-email-yamada.masahiro@socionext.com> (raw) In-Reply-To: <1462873862-30940-1-git-send-email-yamada.masahiro@socionext.com> This series is just for review. Please do not apply this patch. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- drivers/reset/uniphier/Kconfig | 4 ++ drivers/reset/uniphier/Makefile | 2 + drivers/reset/uniphier/reset-uniphier-mio.c | 106 ++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 drivers/reset/uniphier/reset-uniphier-mio.c diff --git a/drivers/reset/uniphier/Kconfig b/drivers/reset/uniphier/Kconfig index 8509e71..a582938 100644 --- a/drivers/reset/uniphier/Kconfig +++ b/drivers/reset/uniphier/Kconfig @@ -34,4 +34,8 @@ config RESET_UNIPHIER_LD20 tristate "Reset driver for UniPhier PH1-LD20 SoC" default ARM64 +config RESET_UNIPHIER_MIO + tristate "Reset driver for UniPhier Media I/O block" + default y + endif diff --git a/drivers/reset/uniphier/Makefile b/drivers/reset/uniphier/Makefile index a33cb0a..e83bd14 100644 --- a/drivers/reset/uniphier/Makefile +++ b/drivers/reset/uniphier/Makefile @@ -7,3 +7,5 @@ obj-$(CONFIG_RESET_UNIPHIER_PRO5) += reset-uniphier-pro5.o obj-$(CONFIG_RESET_UNIPHIER_PXS2) += reset-uniphier-pxs2.o obj-$(CONFIG_RESET_UNIPHIER_LD11) += reset-uniphier-ld11.o obj-$(CONFIG_RESET_UNIPHIER_LD20) += reset-uniphier-ld20.o + +obj-$(CONFIG_RESET_UNIPHIER_MIO) += reset-uniphier-mio.o diff --git a/drivers/reset/uniphier/reset-uniphier-mio.c b/drivers/reset/uniphier/reset-uniphier-mio.c new file mode 100644 index 0000000..f68a8cf --- /dev/null +++ b/drivers/reset/uniphier/reset-uniphier-mio.c @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2016 Socionext Inc. + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/module.h> +#include <linux/platform_device.h> + +#include "reset-uniphier.h" + +#define UNIPHIER_MIO_RESET_SD(ch, index) \ + { \ + .id = (index), \ + .reg = 0x110 + 0x200 * (ch), \ + .mask = BIT(26) | BIT(0), \ + .deassert_val = BIT(26) | BIT(0), \ + } + +#define UNIPHIER_MIO_RESET_EMMC_HW_RESET(ch, index) \ + { \ + .id = (index), \ + .reg = 0x80 + 0x200 * (ch), \ + .mask = BIT(0), \ + .deassert_val = BIT(0), \ + } + +#define UNIPHIER_MIO_RESET_EHCI(ch, index) \ + { \ + .id = (index), \ + .reg = 0x110 + 0x200 * (ch), \ + .mask = BIT(24), \ + .deassert_val = BIT(24), \ + }, \ + { \ + .id = (index), \ + .reg = 0x114 + 0x200 * (ch), \ + .mask = BIT(0), \ + .deassert_val = BIT(0), \ + } + +#define UNIPHIER_MIO_RESET_DMAC(index) \ + { \ + .id = (index), \ + .reg = 0x110, \ + .mask = BIT(17), \ + .deassert_val = BIT(17), \ + } + +static const struct uniphier_reset_data uniphier_ld4_mio_reset_data[] = { + UNIPHIER_MIO_RESET_SD(0, 0), + UNIPHIER_MIO_RESET_SD(1, 1), + UNIPHIER_MIO_RESET_SD(2, 2), + UNIPHIER_MIO_RESET_DMAC(3), + UNIPHIER_MIO_RESET_EHCI(0, 4), + UNIPHIER_MIO_RESET_EHCI(1, 5), + UNIPHIER_MIO_RESET_EHCI(2, 6), + UNIPHIER_MIO_RESET_EMMC_HW_RESET(1, 9), + { .id = UNIPHIER_RESET_ID_END } +}; + +static int uniphier_ld4_mio_reset_probe(struct platform_device *pdev) +{ + return uniphier_reset_probe(pdev, uniphier_ld4_mio_reset_data); +} + +static struct platform_driver uniphier_ld4_mio_reset_driver = { + .probe = uniphier_ld4_mio_reset_probe, + .driver = { + .name = "uniphier-ld4-mio-reset", + }, +}; +module_platform_driver(uniphier_ld4_mio_reset_driver); + +static const struct uniphier_reset_data uniphier_pro5_mio_reset_data[] = { + UNIPHIER_MIO_RESET_SD(0, 0), + UNIPHIER_MIO_RESET_SD(1, 1), + UNIPHIER_MIO_RESET_EMMC_HW_RESET(1, 9), + { .id = UNIPHIER_RESET_ID_END } +}; + +static int uniphier_pro5_mio_reset_probe(struct platform_device *pdev) +{ + return uniphier_reset_probe(pdev, uniphier_pro5_mio_reset_data); +} + +static struct platform_driver uniphier_pro5_mio_reset_driver = { + .probe = uniphier_pro5_mio_reset_probe, + .driver = { + .name = "uniphier-mio-reset", + }, +}; +module_platform_driver(uniphier_pro5_mio_reset_driver); + +MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); +MODULE_DESCRIPTION("UniPhier Media I/O Reset Controller Driver"); +MODULE_LICENSE("GPL"); -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: yamada.masahiro@socionext.com (Masahiro Yamada) To: linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 20/21] reset: uniphier: add reset driver for Media I/O block on UniPhier SoCs Date: Tue, 10 May 2016 18:51:01 +0900 [thread overview] Message-ID: <1462873862-30940-21-git-send-email-yamada.masahiro@socionext.com> (raw) In-Reply-To: <1462873862-30940-1-git-send-email-yamada.masahiro@socionext.com> This series is just for review. Please do not apply this patch. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- drivers/reset/uniphier/Kconfig | 4 ++ drivers/reset/uniphier/Makefile | 2 + drivers/reset/uniphier/reset-uniphier-mio.c | 106 ++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 drivers/reset/uniphier/reset-uniphier-mio.c diff --git a/drivers/reset/uniphier/Kconfig b/drivers/reset/uniphier/Kconfig index 8509e71..a582938 100644 --- a/drivers/reset/uniphier/Kconfig +++ b/drivers/reset/uniphier/Kconfig @@ -34,4 +34,8 @@ config RESET_UNIPHIER_LD20 tristate "Reset driver for UniPhier PH1-LD20 SoC" default ARM64 +config RESET_UNIPHIER_MIO + tristate "Reset driver for UniPhier Media I/O block" + default y + endif diff --git a/drivers/reset/uniphier/Makefile b/drivers/reset/uniphier/Makefile index a33cb0a..e83bd14 100644 --- a/drivers/reset/uniphier/Makefile +++ b/drivers/reset/uniphier/Makefile @@ -7,3 +7,5 @@ obj-$(CONFIG_RESET_UNIPHIER_PRO5) += reset-uniphier-pro5.o obj-$(CONFIG_RESET_UNIPHIER_PXS2) += reset-uniphier-pxs2.o obj-$(CONFIG_RESET_UNIPHIER_LD11) += reset-uniphier-ld11.o obj-$(CONFIG_RESET_UNIPHIER_LD20) += reset-uniphier-ld20.o + +obj-$(CONFIG_RESET_UNIPHIER_MIO) += reset-uniphier-mio.o diff --git a/drivers/reset/uniphier/reset-uniphier-mio.c b/drivers/reset/uniphier/reset-uniphier-mio.c new file mode 100644 index 0000000..f68a8cf --- /dev/null +++ b/drivers/reset/uniphier/reset-uniphier-mio.c @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2016 Socionext Inc. + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/module.h> +#include <linux/platform_device.h> + +#include "reset-uniphier.h" + +#define UNIPHIER_MIO_RESET_SD(ch, index) \ + { \ + .id = (index), \ + .reg = 0x110 + 0x200 * (ch), \ + .mask = BIT(26) | BIT(0), \ + .deassert_val = BIT(26) | BIT(0), \ + } + +#define UNIPHIER_MIO_RESET_EMMC_HW_RESET(ch, index) \ + { \ + .id = (index), \ + .reg = 0x80 + 0x200 * (ch), \ + .mask = BIT(0), \ + .deassert_val = BIT(0), \ + } + +#define UNIPHIER_MIO_RESET_EHCI(ch, index) \ + { \ + .id = (index), \ + .reg = 0x110 + 0x200 * (ch), \ + .mask = BIT(24), \ + .deassert_val = BIT(24), \ + }, \ + { \ + .id = (index), \ + .reg = 0x114 + 0x200 * (ch), \ + .mask = BIT(0), \ + .deassert_val = BIT(0), \ + } + +#define UNIPHIER_MIO_RESET_DMAC(index) \ + { \ + .id = (index), \ + .reg = 0x110, \ + .mask = BIT(17), \ + .deassert_val = BIT(17), \ + } + +static const struct uniphier_reset_data uniphier_ld4_mio_reset_data[] = { + UNIPHIER_MIO_RESET_SD(0, 0), + UNIPHIER_MIO_RESET_SD(1, 1), + UNIPHIER_MIO_RESET_SD(2, 2), + UNIPHIER_MIO_RESET_DMAC(3), + UNIPHIER_MIO_RESET_EHCI(0, 4), + UNIPHIER_MIO_RESET_EHCI(1, 5), + UNIPHIER_MIO_RESET_EHCI(2, 6), + UNIPHIER_MIO_RESET_EMMC_HW_RESET(1, 9), + { .id = UNIPHIER_RESET_ID_END } +}; + +static int uniphier_ld4_mio_reset_probe(struct platform_device *pdev) +{ + return uniphier_reset_probe(pdev, uniphier_ld4_mio_reset_data); +} + +static struct platform_driver uniphier_ld4_mio_reset_driver = { + .probe = uniphier_ld4_mio_reset_probe, + .driver = { + .name = "uniphier-ld4-mio-reset", + }, +}; +module_platform_driver(uniphier_ld4_mio_reset_driver); + +static const struct uniphier_reset_data uniphier_pro5_mio_reset_data[] = { + UNIPHIER_MIO_RESET_SD(0, 0), + UNIPHIER_MIO_RESET_SD(1, 1), + UNIPHIER_MIO_RESET_EMMC_HW_RESET(1, 9), + { .id = UNIPHIER_RESET_ID_END } +}; + +static int uniphier_pro5_mio_reset_probe(struct platform_device *pdev) +{ + return uniphier_reset_probe(pdev, uniphier_pro5_mio_reset_data); +} + +static struct platform_driver uniphier_pro5_mio_reset_driver = { + .probe = uniphier_pro5_mio_reset_probe, + .driver = { + .name = "uniphier-mio-reset", + }, +}; +module_platform_driver(uniphier_pro5_mio_reset_driver); + +MODULE_AUTHOR("Masahiro Yamada <yamada.masahiro@socionext.com>"); +MODULE_DESCRIPTION("UniPhier Media I/O Reset Controller Driver"); +MODULE_LICENSE("GPL"); -- 1.9.1
next prev parent reply other threads:[~2016-05-10 9:51 UTC|newest] Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-05-10 9:50 [RFC PATCH 00/21] mfd, clock, reset: add UniPhier clock/reset driver support Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 01/21] mfd: uniphier: add UniPhier MFD driver Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 11:26 ` Lee Jones 2016-05-10 11:26 ` Lee Jones 2016-05-11 1:51 ` Masahiro Yamada 2016-05-11 1:51 ` Masahiro Yamada 2016-05-11 7:38 ` Lee Jones 2016-05-11 7:38 ` Lee Jones 2016-05-10 9:50 ` [RFC PATCH 02/21] clk: uniphier: add core support for UniPhier clock driver Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 03/21] clk: uniphier: add clock driver for UniPhier PH1-LD4 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 04/21] clk: uniphier: add clock driver for UniPhier PH1-Pro4 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 05/21] clk: uniphier: add clock driver for UniPhier PH1-sLD8 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 06/21] clk: uniphier: add clock driver for UniPhier PH1-Pro5 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 07/21] clk: uniphier: add clock driver for UniPhier ProXstream2/PH1-LD6b SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 08/21] clk: uniphier: add clock driver for UniPhier PH1-LD11 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 09/21] clk: uniphier: add clock driver for UniPhier PH1-LD20 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 10/21] clk: uniphier: add clock driver for Media I/O block on UniPhier SoCs Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 11/21] clk: uniphier: add clock driver for Peripheral " Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 12/21] reset: uniphier: add core support for UniPhier reset driver Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 13:54 ` Philipp Zabel 2016-05-10 13:54 ` Philipp Zabel 2016-05-11 2:46 ` Masahiro Yamada 2016-05-11 2:46 ` Masahiro Yamada 2016-05-11 10:34 ` Philipp Zabel 2016-05-11 10:34 ` Philipp Zabel 2016-05-10 9:50 ` [RFC PATCH 13/21] reset: uniphier: add reset driver for UniPhier PH1-LD4 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 12:25 ` Philipp Zabel 2016-05-10 12:25 ` Philipp Zabel 2016-05-11 2:52 ` Masahiro Yamada 2016-05-11 2:52 ` Masahiro Yamada 2016-05-11 10:34 ` Philipp Zabel 2016-05-11 10:34 ` Philipp Zabel 2016-05-11 10:37 ` Philipp Zabel 2016-05-11 10:37 ` Philipp Zabel 2016-05-10 9:50 ` [RFC PATCH 14/21] reset: uniphier: add reset driver for UniPhier PH1-Pro4 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 15/21] reset: uniphier: add reset driver for UniPhier PH1-sLD8 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 16/21] reset: uniphier: add reset driver for UniPhier PH1-Pro5 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 17/21] reset: uniphier: add reset driver for UniPhier ProXstream2/PH1-LD6b SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:50 ` [RFC PATCH 18/21] reset: uniphier: add reset driver for UniPhier PH1-LD11 SoC Masahiro Yamada 2016-05-10 9:50 ` Masahiro Yamada 2016-05-10 9:51 ` [RFC PATCH 19/21] reset: uniphier: add reset driver for UniPhier PH1-LD20 SoC Masahiro Yamada 2016-05-10 9:51 ` Masahiro Yamada 2016-05-10 9:51 ` Masahiro Yamada 2016-05-10 9:51 ` Masahiro Yamada [this message] 2016-05-10 9:51 ` [RFC PATCH 20/21] reset: uniphier: add reset driver for Media I/O block on UniPhier SoCs Masahiro Yamada 2016-05-10 9:51 ` [RFC PATCH 21/21] reset: uniphier: add reset driver for Peripheral " Masahiro Yamada 2016-05-10 9:51 ` Masahiro Yamada 2016-05-10 9:51 ` Masahiro Yamada
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1462873862-30940-21-git-send-email-yamada.masahiro@socionext.com \ --to=yamada.masahiro@socionext.com \ --cc=arnd@arndb.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=p.zabel@pengutronix.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.