linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ARM: dm8168-evm: add SATA support
@ 2017-03-14 11:14 Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 1/4] ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA Bartosz Golaszewski
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2017-03-14 11:14 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Neil Armstrong, Michael Turquette,
	Kevin Hilman, Patrick Titiano, Tony Lindgren, Paul Walmsley,
	Sergei Shtylyov
  Cc: linux-ide, devicetree, linux-kernel, linux-arm-kernel,
	linux-omap, Bartosz Golaszewski

This series implements support for the on-board SATA controller
on the dm8168-evm board.

The first patch adds the clock domain and hwmod entries for the
SATA module.

The second patch models the external reference clock used by SATA.

The third adds the SATA node to the SoC's device tree.

The fourth enables the SATA driver by default in omap2plus_defconfig.

Tested together with the series implementing the driver for
ahci-dm816 on a DM8168-EVM board.

v1 -> v2:
  PATCH 1/4:
    - removed the unused define from cm81xx.h
  PATCH 3/4:
    - fixed the size of the mapped register region

Bartosz Golaszewski (3):
  ARM: dts: dm8168-evm: add the external reference clock for SATA
  ARM: dts: dm8168-evm: add SATA node
  ARM: omap2plus_defconfig: enable ahci-dm816 module

Kevin Hilman (1):
  ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA

 arch/arm/boot/dts/dm8168-evm.dts            | 10 +++++++++
 arch/arm/boot/dts/dm816x.dtsi               |  7 ++++++
 arch/arm/configs/omap2plus_defconfig        |  1 +
 arch/arm/mach-omap2/clockdomains81xx_data.c | 10 +++++++++
 arch/arm/mach-omap2/cm81xx.h                |  1 +
 arch/arm/mach-omap2/omap_hwmod_81xx_data.c  | 34 +++++++++++++++++++++++++++++
 6 files changed, 63 insertions(+)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/4] ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA
  2017-03-14 11:14 [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Bartosz Golaszewski
@ 2017-03-14 11:14 ` Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 2/4] ARM: dts: dm8168-evm: add the external reference clock " Bartosz Golaszewski
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2017-03-14 11:14 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Neil Armstrong, Michael Turquette,
	Kevin Hilman, Patrick Titiano, Tony Lindgren, Paul Walmsley,
	Sergei Shtylyov
  Cc: linux-ide, devicetree, linux-kernel, linux-arm-kernel,
	linux-omap, Bartosz Golaszewski

From: Kevin Hilman <khilman@baylibre.com>

Add the SATA clockdomain (part of CM_DEFAULT) and a hwmod for the SATA
block on dm81xx.

Tested on DM8168 EVM.

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
[Bartosz: removed an unused define]
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 arch/arm/mach-omap2/clockdomains81xx_data.c | 10 +++++++++
 arch/arm/mach-omap2/cm81xx.h                |  1 +
 arch/arm/mach-omap2/omap_hwmod_81xx_data.c  | 34 +++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+)

diff --git a/arch/arm/mach-omap2/clockdomains81xx_data.c b/arch/arm/mach-omap2/clockdomains81xx_data.c
index 3b5fb05..65fbd13 100644
--- a/arch/arm/mach-omap2/clockdomains81xx_data.c
+++ b/arch/arm/mach-omap2/clockdomains81xx_data.c
@@ -91,6 +91,14 @@ static struct clockdomain default_l3_slow_81xx_clkdm = {
 	.flags		= CLKDM_CAN_SWSUP,
 };
 
+static struct clockdomain default_sata_81xx_clkdm = {
+	.name		= "default_clkdm",
+	.pwrdm		= { .name = "default_pwrdm" },
+	.cm_inst	= TI81XX_CM_DEFAULT_MOD,
+	.clkdm_offs	= TI816X_CM_DEFAULT_SATA_CLKDM,
+	.flags		= CLKDM_CAN_SWSUP,
+};
+
 /* 816x only */
 
 static struct clockdomain alwon_mpu_816x_clkdm = {
@@ -173,6 +181,7 @@ static struct clockdomain *clockdomains_ti814x[] __initdata = {
 	&mmu_81xx_clkdm,
 	&mmu_cfg_81xx_clkdm,
 	&default_l3_slow_81xx_clkdm,
+	&default_sata_81xx_clkdm,
 	NULL,
 };
 
@@ -200,6 +209,7 @@ static struct clockdomain *clockdomains_ti816x[] __initdata = {
 	&default_ducati_816x_clkdm,
 	&default_pci_816x_clkdm,
 	&default_l3_slow_81xx_clkdm,
+	&default_sata_81xx_clkdm,
 	NULL,
 };
 
diff --git a/arch/arm/mach-omap2/cm81xx.h b/arch/arm/mach-omap2/cm81xx.h
index 3a0ccf0..5d73a10 100644
--- a/arch/arm/mach-omap2/cm81xx.h
+++ b/arch/arm/mach-omap2/cm81xx.h
@@ -57,5 +57,6 @@
 #define TI816X_CM_DEFAULT_PCI_CLKDM		0x0010
 #define TI816X_CM_DEFAULT_L3_SLOW_CLKDM		0x0014
 #define TI816X_CM_DEFAULT_DUCATI_CLKDM		0x0018
+#define TI816X_CM_DEFAULT_SATA_CLKDM		0x0060
 
 #endif
diff --git a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c
index b82b77c..310afe4 100644
--- a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c
@@ -106,6 +106,7 @@
  */
 #define DM81XX_CM_DEFAULT_OFFSET	0x500
 #define DM81XX_CM_DEFAULT_USB_CLKCTRL	(0x558 - DM81XX_CM_DEFAULT_OFFSET)
+#define DM81XX_CM_DEFAULT_SATA_CLKCTRL	(0x560 - DM81XX_CM_DEFAULT_OFFSET)
 
 /* L3 Interconnect entries clocked at 125, 250 and 500MHz */
 static struct omap_hwmod dm81xx_alwon_l3_slow_hwmod = {
@@ -973,6 +974,38 @@ static struct omap_hwmod_ocp_if dm816x_l4_hs__emac1 = {
 	.user		= OCP_USER_MPU,
 };
 
+static struct omap_hwmod_class_sysconfig dm81xx_sata_sysc = {
+	.sysc_offs	= 0x1100,
+	.sysc_flags	= SYSC_HAS_SIDLEMODE,
+	.idlemodes	= SIDLE_FORCE,
+	.sysc_fields	= &omap_hwmod_sysc_type3,
+};
+
+static struct omap_hwmod_class dm81xx_sata_hwmod_class = {
+	.name	= "sata",
+	.sysc	= &dm81xx_sata_sysc,
+};
+
+static struct omap_hwmod dm81xx_sata_hwmod = {
+	.name		= "sata",
+	.clkdm_name	= "default_sata_clkdm",
+	.flags		= HWMOD_NO_IDLEST,
+	.prcm = {
+		.omap4 = {
+			.clkctrl_offs = DM81XX_CM_DEFAULT_SATA_CLKCTRL,
+			.modulemode   = MODULEMODE_SWCTRL,
+		},
+	},
+	.class		= &dm81xx_sata_hwmod_class,
+};
+
+static struct omap_hwmod_ocp_if dm81xx_l4_hs__sata = {
+	.master		= &dm81xx_l4_hs_hwmod,
+	.slave		= &dm81xx_sata_hwmod,
+	.clk		= "sysclk5_ck",
+	.user		= OCP_USER_MPU,
+};
+
 static struct omap_hwmod_class_sysconfig dm81xx_mmc_sysc = {
 	.rev_offs	= 0x0,
 	.sysc_offs	= 0x110,
@@ -1474,6 +1507,7 @@ static struct omap_hwmod_ocp_if *dm816x_hwmod_ocp_ifs[] __initdata = {
 	&dm81xx_l4_hs__emac0,
 	&dm81xx_emac0__mdio,
 	&dm816x_l4_hs__emac1,
+	&dm81xx_l4_hs__sata,
 	&dm81xx_alwon_l3_fast__tpcc,
 	&dm81xx_alwon_l3_fast__tptc0,
 	&dm81xx_alwon_l3_fast__tptc1,
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/4] ARM: dts: dm8168-evm: add the external reference clock for SATA
  2017-03-14 11:14 [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 1/4] ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA Bartosz Golaszewski
@ 2017-03-14 11:14 ` Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 3/4] ARM: dts: dm8168-evm: add SATA node Bartosz Golaszewski
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2017-03-14 11:14 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Neil Armstrong, Michael Turquette,
	Kevin Hilman, Patrick Titiano, Tony Lindgren, Paul Walmsley,
	Sergei Shtylyov
  Cc: linux-ide, devicetree, linux-kernel, linux-arm-kernel,
	linux-omap, Bartosz Golaszewski

This board has an external oscillator supplying the reference clock
signal for SATA. Its rate is fixed at 100Mhz. Add a corresponding
device tree node.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 arch/arm/boot/dts/dm8168-evm.dts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/dm8168-evm.dts b/arch/arm/boot/dts/dm8168-evm.dts
index 0bf55fa..c6fabfc 100644
--- a/arch/arm/boot/dts/dm8168-evm.dts
+++ b/arch/arm/boot/dts/dm8168-evm.dts
@@ -25,6 +25,12 @@
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 	};
+
+	sata_refclk: fixedclock0 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <100000000>;
+	};
 };
 
 &dm816x_pinmux {
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/4] ARM: dts: dm8168-evm: add SATA node
  2017-03-14 11:14 [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 1/4] ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 2/4] ARM: dts: dm8168-evm: add the external reference clock " Bartosz Golaszewski
@ 2017-03-14 11:14 ` Bartosz Golaszewski
  2017-03-14 11:14 ` [PATCH v2 4/4] ARM: omap2plus_defconfig: enable ahci-dm816 module Bartosz Golaszewski
  2017-03-23 21:00 ` [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Tony Lindgren
  4 siblings, 0 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2017-03-14 11:14 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Neil Armstrong, Michael Turquette,
	Kevin Hilman, Patrick Titiano, Tony Lindgren, Paul Walmsley,
	Sergei Shtylyov
  Cc: linux-ide, devicetree, linux-kernel, linux-arm-kernel,
	linux-omap, Bartosz Golaszewski

Add the SATA controller node to the dm8168-evm device tree.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 arch/arm/boot/dts/dm8168-evm.dts | 4 ++++
 arch/arm/boot/dts/dm816x.dtsi    | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/dm8168-evm.dts b/arch/arm/boot/dts/dm8168-evm.dts
index c6fabfc..1865976 100644
--- a/arch/arm/boot/dts/dm8168-evm.dts
+++ b/arch/arm/boot/dts/dm8168-evm.dts
@@ -179,3 +179,7 @@
 	pinctrl-0 = <&usb1_pins>;
 	mentor,multipoint = <0>;
 };
+
+&sata {
+	clocks = <&sysclk5_ck>, <&sata_refclk>;
+};
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi
index 276211e..59cbf95 100644
--- a/arch/arm/boot/dts/dm816x.dtsi
+++ b/arch/arm/boot/dts/dm816x.dtsi
@@ -293,6 +293,13 @@
 			phy-handle = <&phy1>;
 		};
 
+		sata: sata@4a140000 {
+			compatible = "ti,dm816-ahci";
+			reg = <0x4a140000 0x10000>;
+			interrupts = <16>;
+			ti,hwmods = "sata";
+		};
+
 		mcspi1: spi@48030000 {
 			compatible = "ti,omap4-mcspi";
 			reg = <0x48030000 0x1000>;
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 4/4] ARM: omap2plus_defconfig: enable ahci-dm816 module
  2017-03-14 11:14 [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2017-03-14 11:14 ` [PATCH v2 3/4] ARM: dts: dm8168-evm: add SATA node Bartosz Golaszewski
@ 2017-03-14 11:14 ` Bartosz Golaszewski
  2017-03-23 21:00 ` [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Tony Lindgren
  4 siblings, 0 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2017-03-14 11:14 UTC (permalink / raw)
  To: Rob Herring, Mark Rutland, Neil Armstrong, Michael Turquette,
	Kevin Hilman, Patrick Titiano, Tony Lindgren, Paul Walmsley,
	Sergei Shtylyov
  Cc: linux-ide, devicetree, linux-kernel, linux-arm-kernel,
	linux-omap, Bartosz Golaszewski

This is now supported on the dm8168-evm board, so enable it in
the defconfig for omap2+.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 arch/arm/configs/omap2plus_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index f2462a6..3944aa9 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -141,6 +141,7 @@ CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_ATA=y
 CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_DM816=m
 CONFIG_NETDEVICES=y
 # CONFIG_NET_VENDOR_ARC is not set
 # CONFIG_NET_CADENCE is not set
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 0/4] ARM: dm8168-evm: add SATA support
  2017-03-14 11:14 [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Bartosz Golaszewski
                   ` (3 preceding siblings ...)
  2017-03-14 11:14 ` [PATCH v2 4/4] ARM: omap2plus_defconfig: enable ahci-dm816 module Bartosz Golaszewski
@ 2017-03-23 21:00 ` Tony Lindgren
  4 siblings, 0 replies; 6+ messages in thread
From: Tony Lindgren @ 2017-03-23 21:00 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Rob Herring, Mark Rutland, Neil Armstrong, Michael Turquette,
	Kevin Hilman, Patrick Titiano, Paul Walmsley, Sergei Shtylyov,
	linux-ide, devicetree, linux-kernel, linux-arm-kernel,
	linux-omap

* Bartosz Golaszewski <bgolaszewski@baylibre.com> [170314 04:16]:
> This series implements support for the on-board SATA controller
> on the dm8168-evm board.
> 
> The first patch adds the clock domain and hwmod entries for the
> SATA module.
> 
> The second patch models the external reference clock used by SATA.
> 
> The third adds the SATA node to the SoC's device tree.
> 
> The fourth enables the SATA driver by default in omap2plus_defconfig.
> 
> Tested together with the series implementing the driver for
> ahci-dm816 on a DM8168-EVM board.
> 
> v1 -> v2:
>   PATCH 1/4:
>     - removed the unused define from cm81xx.h
>   PATCH 3/4:
>     - fixed the size of the mapped register region
> 
> Bartosz Golaszewski (3):
>   ARM: dts: dm8168-evm: add the external reference clock for SATA
>   ARM: dts: dm8168-evm: add SATA node
>   ARM: omap2plus_defconfig: enable ahci-dm816 module
> 
> Kevin Hilman (1):
>   ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA

Applying all for for v4.12 into soc, dts-v2 and defconfig
branches.

Thanks,

Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-03-23 21:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-14 11:14 [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Bartosz Golaszewski
2017-03-14 11:14 ` [PATCH v2 1/4] ARM: OMAP2+: dm81xx: Add clkdm and hwmod for SATA Bartosz Golaszewski
2017-03-14 11:14 ` [PATCH v2 2/4] ARM: dts: dm8168-evm: add the external reference clock " Bartosz Golaszewski
2017-03-14 11:14 ` [PATCH v2 3/4] ARM: dts: dm8168-evm: add SATA node Bartosz Golaszewski
2017-03-14 11:14 ` [PATCH v2 4/4] ARM: omap2plus_defconfig: enable ahci-dm816 module Bartosz Golaszewski
2017-03-23 21:00 ` [PATCH v2 0/4] ARM: dm8168-evm: add SATA support Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).