linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/6] Add MCAN Support for dra76x
@ 2018-07-05 14:23 Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 1/6] ARM: dts: dra762: Add MCAN clock support Faiz Abbas
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

The following patches add dts and sysconfig support
for MCAN on TI's dra76 SOCs

Changes in v4:
 1. Rebased to latest kernel
 2. Using ddata->cfg.syss_mask instead of ddata->cfg.quirks
    for checking if poll on reset status is required.

Changes in v3:
 1. Added reset functionality to the ti-sysc
    driver. This enables me to drop the hwmod
    data patch as everything is being done in dt.

 2. Dropped ti,hwmods from the dts nodes

 3. Fixed the unit address of target-module
    and mcan

 4. Removed the status="disabled" in dtsi
    followed by status="okay" in dts.

Changes in v2:
 1. Added Support for mcan in the ti-sysc driver
    Also added the target-module node for the same

 2. Added clkctrl data for mcan clocks

Faiz Abbas (4):
  clk: ti: dra7: Add clkctrl clock data for the mcan clocks
  bus: ti-sysc: Add support for using ti-sysc for MCAN on dra76x
  bus: ti-sysc: Add support for software reset
  ARM: dts: Add generic interconnect target module node for MCAN

Franklin S Cooper Jr (1):
  ARM: dts: dra76x: Add MCAN node

Lokesh Vutla (1):
  ARM: dts: dra762: Add MCAN clock support

 .../devicetree/bindings/bus/ti-sysc.txt       |  1 +
 arch/arm/boot/dts/dra76-evm.dts               |  6 ++
 arch/arm/boot/dts/dra76x.dtsi                 | 64 +++++++++++++++++++
 drivers/bus/ti-sysc.c                         | 57 +++++++++++++++++
 drivers/clk/ti/clk-7xx.c                      |  1 +
 include/dt-bindings/bus/ti-sysc.h             |  2 +
 include/dt-bindings/clock/dra7.h              |  1 +
 include/linux/platform_data/ti-sysc.h         |  1 +
 8 files changed, 133 insertions(+)

-- 
2.17.0


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

* [PATCH v4 1/6] ARM: dts: dra762: Add MCAN clock support
  2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
@ 2018-07-05 14:23 ` Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 2/6] clk: ti: dra7: Add clkctrl clock data for the mcan clocks Faiz Abbas
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

From: Lokesh Vutla <lokeshvutla@ti.com>

MCAN is clocked by H14 divider of DPLL_GMAC. Unlike other
DPLL dividers this DPLL_GMAC H14 divider is controlled by
control module. Adding support for these clocks.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
 arch/arm/boot/dts/dra76x.dtsi | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/arch/arm/boot/dts/dra76x.dtsi b/arch/arm/boot/dts/dra76x.dtsi
index 1c88c581ff18..bfc82636999c 100644
--- a/arch/arm/boot/dts/dra76x.dtsi
+++ b/arch/arm/boot/dts/dra76x.dtsi
@@ -17,3 +17,36 @@
 &crossbar_mpu {
 	ti,irqs-skip = <10 67 68 133 139 140>;
 };
+
+&scm_conf_clocks {
+	dpll_gmac_h14x2_ctrl_ck: dpll_gmac_h14x2_ctrl_ck@3fc {
+		#clock-cells = <0>;
+		compatible = "ti,divider-clock";
+		clocks = <&dpll_gmac_x2_ck>;
+		ti,max-div = <63>;
+		reg = <0x03fc>;
+		ti,bit-shift=<20>;
+		ti,latch-bit=<26>;
+		assigned-clocks = <&dpll_gmac_h14x2_ctrl_ck>;
+		assigned-clock-rates = <80000000>;
+	};
+
+	dpll_gmac_h14x2_ctrl_mux_ck: dpll_gmac_h14x2_ctrl_mux_ck@3fc {
+		#clock-cells = <0>;
+		compatible = "ti,mux-clock";
+		clocks = <&dpll_gmac_ck>, <&dpll_gmac_h14x2_ctrl_ck>;
+		reg = <0x3fc>;
+		ti,bit-shift = <29>;
+		ti,latch-bit=<26>;
+		assigned-clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
+		assigned-clock-parents = <&dpll_gmac_h14x2_ctrl_ck>;
+	};
+
+	mcan_clk: mcan_clk@3fc {
+		#clock-cells = <0>;
+		compatible = "ti,gate-clock";
+		clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
+		ti,bit-shift = <27>;
+		reg = <0x3fc>;
+	};
+};
-- 
2.17.0


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

* [PATCH v4 2/6] clk: ti: dra7: Add clkctrl clock data for the mcan clocks
  2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 1/6] ARM: dts: dra762: Add MCAN clock support Faiz Abbas
@ 2018-07-05 14:23 ` Faiz Abbas
  2018-07-06 20:47   ` Stephen Boyd
  2018-07-05 14:23 ` [PATCH v4 3/6] bus: ti-sysc: Add support for using ti-sysc for MCAN on dra76x Faiz Abbas
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

Add clkctrl data for the m_can clocks and register it within the
clkctrl driver

Acked-by: Rob Herring <robh@kernel.org>
CC: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
 drivers/clk/ti/clk-7xx.c         | 1 +
 include/dt-bindings/clock/dra7.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/clk/ti/clk-7xx.c b/drivers/clk/ti/clk-7xx.c
index fb249a1637a5..71a122b2dc67 100644
--- a/drivers/clk/ti/clk-7xx.c
+++ b/drivers/clk/ti/clk-7xx.c
@@ -708,6 +708,7 @@ static const struct omap_clkctrl_reg_data dra7_wkupaon_clkctrl_regs[] __initcons
 	{ DRA7_COUNTER_32K_CLKCTRL, NULL, 0, "wkupaon_iclk_mux" },
 	{ DRA7_UART10_CLKCTRL, dra7_uart10_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0060:24" },
 	{ DRA7_DCAN1_CLKCTRL, dra7_dcan1_bit_data, CLKF_SW_SUP, "wkupaon_cm:clk:0068:24" },
+	{ DRA7_ADC_CLKCTRL, NULL, CLKF_SW_SUP, "mcan_clk"},
 	{ 0 },
 };
 
diff --git a/include/dt-bindings/clock/dra7.h b/include/dt-bindings/clock/dra7.h
index 5e1061b15aed..d7549c57cac3 100644
--- a/include/dt-bindings/clock/dra7.h
+++ b/include/dt-bindings/clock/dra7.h
@@ -168,5 +168,6 @@
 #define DRA7_COUNTER_32K_CLKCTRL	DRA7_CLKCTRL_INDEX(0x50)
 #define DRA7_UART10_CLKCTRL	DRA7_CLKCTRL_INDEX(0x80)
 #define DRA7_DCAN1_CLKCTRL	DRA7_CLKCTRL_INDEX(0x88)
+#define DRA7_ADC_CLKCTRL	DRA7_CLKCTRL_INDEX(0xa0)
 
 #endif
-- 
2.17.0


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

* [PATCH v4 3/6] bus: ti-sysc: Add support for using ti-sysc for MCAN on dra76x
  2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 1/6] ARM: dts: dra762: Add MCAN clock support Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 2/6] clk: ti: dra7: Add clkctrl clock data for the mcan clocks Faiz Abbas
@ 2018-07-05 14:23 ` Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 4/6] bus: ti-sysc: Add support for software reset Faiz Abbas
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

The dra76x MCAN generic interconnect module has a its own
format for the bits in the control registers.

Therefore add a new module type, new regbits and new capabilities
specific to the MCAN module.

Acked-by: Rob Herring <robh@kernel.org>
CC: Tony Lindgren <tony@atomide.com>
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
 .../devicetree/bindings/bus/ti-sysc.txt        |  1 +
 drivers/bus/ti-sysc.c                          | 18 ++++++++++++++++++
 include/dt-bindings/bus/ti-sysc.h              |  2 ++
 include/linux/platform_data/ti-sysc.h          |  1 +
 4 files changed, 22 insertions(+)

diff --git a/Documentation/devicetree/bindings/bus/ti-sysc.txt b/Documentation/devicetree/bindings/bus/ti-sysc.txt
index d8ed5b780ed9..91dc2333af01 100644
--- a/Documentation/devicetree/bindings/bus/ti-sysc.txt
+++ b/Documentation/devicetree/bindings/bus/ti-sysc.txt
@@ -36,6 +36,7 @@ Required standard properties:
 		"ti,sysc-omap-aes"
 		"ti,sysc-mcasp"
 		"ti,sysc-usb-host-fs"
+		"ti,sysc-dra7-mcan"
 
 - reg		shall have register areas implemented for the interconnect
 		target module in question such as revision, sysc and syss
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index 1cc29629d238..ad1cd6888757 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -1552,6 +1552,23 @@ static const struct sysc_capabilities sysc_omap4_usb_host_fs = {
 	.regbits = &sysc_regbits_omap4_usb_host_fs,
 };
 
+static const struct sysc_regbits sysc_regbits_dra7_mcan = {
+	.dmadisable_shift = -ENODEV,
+	.midle_shift = -ENODEV,
+	.sidle_shift = -ENODEV,
+	.clkact_shift = -ENODEV,
+	.enwkup_shift = 4,
+	.srst_shift = 0,
+	.emufree_shift = -ENODEV,
+	.autoidle_shift = -ENODEV,
+};
+
+static const struct sysc_capabilities sysc_dra7_mcan = {
+	.type = TI_SYSC_DRA7_MCAN,
+	.sysc_mask = SYSC_DRA7_MCAN_ENAWAKEUP | SYSC_OMAP4_SOFTRESET,
+	.regbits = &sysc_regbits_dra7_mcan,
+};
+
 static int sysc_init_pdata(struct sysc *ddata)
 {
 	struct ti_sysc_platform_data *pdata = dev_get_platdata(ddata->dev);
@@ -1743,6 +1760,7 @@ static const struct of_device_id sysc_match[] = {
 	{ .compatible = "ti,sysc-mcasp", .data = &sysc_omap4_mcasp, },
 	{ .compatible = "ti,sysc-usb-host-fs",
 	  .data = &sysc_omap4_usb_host_fs, },
+	{ .compatible = "ti,sysc-dra7-mcan", .data = &sysc_dra7_mcan, },
 	{  },
 };
 MODULE_DEVICE_TABLE(of, sysc_match);
diff --git a/include/dt-bindings/bus/ti-sysc.h b/include/dt-bindings/bus/ti-sysc.h
index 2c005376ac0e..7138384e2ef9 100644
--- a/include/dt-bindings/bus/ti-sysc.h
+++ b/include/dt-bindings/bus/ti-sysc.h
@@ -15,6 +15,8 @@
 /* SmartReflex sysc found on 36xx and later */
 #define SYSC_OMAP3_SR_ENAWAKEUP		(1 << 26)
 
+#define SYSC_DRA7_MCAN_ENAWAKEUP	(1 << 4)
+
 /* SYSCONFIG STANDBYMODE/MIDLEMODE/SIDLEMODE supported by hardware */
 #define SYSC_IDLE_FORCE			0
 #define SYSC_IDLE_NO			1
diff --git a/include/linux/platform_data/ti-sysc.h b/include/linux/platform_data/ti-sysc.h
index 990aad477458..2efa3470a451 100644
--- a/include/linux/platform_data/ti-sysc.h
+++ b/include/linux/platform_data/ti-sysc.h
@@ -14,6 +14,7 @@ enum ti_sysc_module_type {
 	TI_SYSC_OMAP4_SR,
 	TI_SYSC_OMAP4_MCASP,
 	TI_SYSC_OMAP4_USB_HOST_FS,
+	TI_SYSC_DRA7_MCAN,
 };
 
 struct ti_sysc_cookie {
-- 
2.17.0


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

* [PATCH v4 4/6] bus: ti-sysc: Add support for software reset
  2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
                   ` (2 preceding siblings ...)
  2018-07-05 14:23 ` [PATCH v4 3/6] bus: ti-sysc: Add support for using ti-sysc for MCAN on dra76x Faiz Abbas
@ 2018-07-05 14:23 ` Faiz Abbas
  2018-07-05 15:47   ` Tony Lindgren
  2018-07-05 14:23 ` [PATCH v4 5/6] ARM: dts: Add generic interconnect target module node for MCAN Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 6/6] ARM: dts: dra76x: Add MCAN node Faiz Abbas
  5 siblings, 1 reply; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

Add support for the software reset of a target interconnect
module using its sysconfig and sysstatus registers.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
 drivers/bus/ti-sysc.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index ad1cd6888757..ac65a4f336d5 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -23,11 +23,14 @@
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <linux/slab.h>
+#include <linux/iopoll.h>
 
 #include <linux/platform_data/ti-sysc.h>
 
 #include <dt-bindings/bus/ti-sysc.h>
 
+#define MAX_MODULE_SOFTRESET_WAIT		10000
+
 static const char * const reg_names[] = { "rev", "sysc", "syss", };
 
 enum sysc_clocks {
@@ -88,6 +91,11 @@ struct sysc {
 	struct delayed_work idle_work;
 };
 
+void sysc_write(struct sysc *ddata, int offset, u32 value)
+{
+	writel_relaxed(value, ddata->module_va + offset);
+}
+
 static u32 sysc_read(struct sysc *ddata, int offset)
 {
 	if (ddata->cfg.quirks & SYSC_QUIRK_16BIT) {
@@ -943,6 +951,26 @@ static void sysc_init_revision_quirks(struct sysc *ddata)
 	}
 }
 
+static int sysc_reset(struct sysc *ddata)
+{
+	int offset = ddata->offsets[SYSC_SYSCONFIG];
+	int val = sysc_read(ddata, offset);
+
+	val |= (0x1 << ddata->cap->regbits->srst_shift);
+	sysc_write(ddata, offset, val);
+
+	/* Poll on reset status */
+	if (ddata->cfg.syss_mask) {
+		offset = ddata->offsets[SYSC_SYSSTATUS];
+
+		return readl_poll_timeout(ddata->module_va + offset, val,
+				(val & ddata->cfg.syss_mask) == 0x0,
+				100, MAX_MODULE_SOFTRESET_WAIT);
+	}
+
+	return 0;
+}
+
 /* At this point the module is configured enough to read the revision */
 static int sysc_init_module(struct sysc *ddata)
 {
@@ -960,6 +988,17 @@ static int sysc_init_module(struct sysc *ddata)
 		return 0;
 	}
 
+	if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT) &&
+	    !ddata->legacy_mode) {
+		error = sysc_reset(ddata);
+		if (error) {
+			dev_err(ddata->dev, "Reset failed with %d\n", error);
+			pm_runtime_put_sync(ddata->dev);
+
+			return error;
+		}
+	}
+
 	ddata->revision = sysc_read_revision(ddata);
 	pm_runtime_put_sync(ddata->dev);
 
-- 
2.17.0


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

* [PATCH v4 5/6] ARM: dts: Add generic interconnect target module node for MCAN
  2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
                   ` (3 preceding siblings ...)
  2018-07-05 14:23 ` [PATCH v4 4/6] bus: ti-sysc: Add support for software reset Faiz Abbas
@ 2018-07-05 14:23 ` Faiz Abbas
  2018-07-05 14:23 ` [PATCH v4 6/6] ARM: dts: dra76x: Add MCAN node Faiz Abbas
  5 siblings, 0 replies; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

The ti-sysc driver provides support for manipulating the idle modes
and interconnect level resets.

Add the generic interconnect target module node for MCAN to support
the same.

CC: Tony Lindgren <tony@atomide.com>
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
 arch/arm/boot/dts/dra76x.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/dra76x.dtsi b/arch/arm/boot/dts/dra76x.dtsi
index bfc82636999c..5157cc431574 100644
--- a/arch/arm/boot/dts/dra76x.dtsi
+++ b/arch/arm/boot/dts/dra76x.dtsi
@@ -11,6 +11,24 @@
 / {
 	compatible = "ti,dra762", "ti,dra7";
 
+	ocp {
+		target-module@42c01900 {
+			compatible = "ti,sysc-dra7-mcan", "ti,sysc";
+			ranges = <0x0 0x42c00000 0x2000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = <0x42c01900 0x4>,
+			      <0x42c01904 0x4>,
+			      <0x42c01908 0x4>;
+			reg-names = "rev", "sysc", "syss";
+			ti,sysc-mask = <(SYSC_OMAP4_SOFTRESET |
+					 SYSC_DRA7_MCAN_ENAWAKEUP)>;
+			ti,syss-mask = <1>;
+			clocks = <&wkupaon_clkctrl DRA7_ADC_CLKCTRL 0>;
+			clock-names = "fck";
+		};
+	};
+
 };
 
 /* MCAN interrupts are hard-wired to irqs 67, 68 */
-- 
2.17.0


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

* [PATCH v4 6/6] ARM: dts: dra76x: Add MCAN node
  2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
                   ` (4 preceding siblings ...)
  2018-07-05 14:23 ` [PATCH v4 5/6] ARM: dts: Add generic interconnect target module node for MCAN Faiz Abbas
@ 2018-07-05 14:23 ` Faiz Abbas
  5 siblings, 0 replies; 12+ messages in thread
From: Faiz Abbas @ 2018-07-05 14:23 UTC (permalink / raw)
  To: linux-kernel, devicetree, linux-omap, linux-arm-kernel, linux-clk
  Cc: robh+dt, bcousson, tony, paul, t-kristo, mark.rutland, faiz_abbas

From: Franklin S Cooper Jr <fcooper@ti.com>

Add support for the MCAN peripheral which supports both classic
CAN messages along with the new CAN-FD message.

Add MCAN node to evm and enable it with a maximum datarate of 5 mbps

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---
 arch/arm/boot/dts/dra76-evm.dts |  6 ++++++
 arch/arm/boot/dts/dra76x.dtsi   | 13 +++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/arch/arm/boot/dts/dra76-evm.dts b/arch/arm/boot/dts/dra76-evm.dts
index c07f0051844d..0ac533784b11 100644
--- a/arch/arm/boot/dts/dra76-evm.dts
+++ b/arch/arm/boot/dts/dra76-evm.dts
@@ -436,3 +436,9 @@
 	phys = <&pcie1_phy>, <&pcie2_phy>;
 	phy-names = "pcie-phy0", "pcie-phy1";
 };
+
+&m_can0 {
+	can-transceiver {
+		max-bitrate = <5000000>;
+	};
+};
diff --git a/arch/arm/boot/dts/dra76x.dtsi b/arch/arm/boot/dts/dra76x.dtsi
index 5157cc431574..613e4dc0ed3e 100644
--- a/arch/arm/boot/dts/dra76x.dtsi
+++ b/arch/arm/boot/dts/dra76x.dtsi
@@ -26,6 +26,19 @@
 			ti,syss-mask = <1>;
 			clocks = <&wkupaon_clkctrl DRA7_ADC_CLKCTRL 0>;
 			clock-names = "fck";
+
+			m_can0: mcan@1a00 {
+				compatible = "bosch,m_can";
+				reg = <0x1a00 0x4000>, <0x0 0x18FC>;
+				reg-names = "m_can", "message_ram";
+				interrupt-parent = <&gic>;
+				interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-names = "int0", "int1";
+				clocks = <&mcan_clk>, <&l3_iclk_div>;
+				clock-names = "cclk", "hclk";
+				bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
+			};
 		};
 	};
 
-- 
2.17.0


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

* Re: [PATCH v4 4/6] bus: ti-sysc: Add support for software reset
  2018-07-05 14:23 ` [PATCH v4 4/6] bus: ti-sysc: Add support for software reset Faiz Abbas
@ 2018-07-05 15:47   ` Tony Lindgren
  2018-07-06 10:04     ` Faiz Abbas
  0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2018-07-05 15:47 UTC (permalink / raw)
  To: Faiz Abbas
  Cc: linux-kernel, devicetree, linux-omap, linux-arm-kernel,
	linux-clk, robh+dt, bcousson, paul, t-kristo, mark.rutland

* Faiz Abbas <faiz_abbas@ti.com> [180705 14:24]:
> +static int sysc_reset(struct sysc *ddata)
> +{
> +	int offset = ddata->offsets[SYSC_SYSCONFIG];
> +	int val = sysc_read(ddata, offset);

Can you please just warn and return early for now if no
syss_mask is specified? Otherwise we'll have mysterious
errors if somebody leaves out "ti,hwmods" for module types
we do not yet support reset for.

> +	val |= (0x1 << ddata->cap->regbits->srst_shift);
> +	sysc_write(ddata, offset, val);
> +
> +	/* Poll on reset status */
> +	if (ddata->cfg.syss_mask) {
> +		offset = ddata->offsets[SYSC_SYSSTATUS];
> +
> +		return readl_poll_timeout(ddata->module_va + offset, val,
> +				(val & ddata->cfg.syss_mask) == 0x0,
> +				100, MAX_MODULE_SOFTRESET_WAIT);
> +	}
> +
> +	return 0;
> +}
> +

Otherwise looks good to me.

Thanks,

Tony

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

* Re: [PATCH v4 4/6] bus: ti-sysc: Add support for software reset
  2018-07-05 15:47   ` Tony Lindgren
@ 2018-07-06 10:04     ` Faiz Abbas
  2018-07-06 10:35       ` Tony Lindgren
  0 siblings, 1 reply; 12+ messages in thread
From: Faiz Abbas @ 2018-07-06 10:04 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-kernel, devicetree, linux-omap, linux-arm-kernel,
	linux-clk, robh+dt, bcousson, paul, t-kristo, mark.rutland

Hi,

On Thursday 05 July 2018 09:17 PM, Tony Lindgren wrote:
> * Faiz Abbas <faiz_abbas@ti.com> [180705 14:24]:
>> +static int sysc_reset(struct sysc *ddata)
>> +{
>> +	int offset = ddata->offsets[SYSC_SYSCONFIG];
>> +	int val = sysc_read(ddata, offset);
> 
> Can you please just warn and return early for now if no
> syss_mask is specified? Otherwise we'll have mysterious
> errors if somebody leaves out "ti,hwmods" for module types
> we do not yet support reset for.

RESET write to sysconfig can still happen even if there's no syss_mask
right? Not all modules need to poll on reset status.

Thanks,
Faiz

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

* Re: [PATCH v4 4/6] bus: ti-sysc: Add support for software reset
  2018-07-06 10:04     ` Faiz Abbas
@ 2018-07-06 10:35       ` Tony Lindgren
  2018-07-06 12:35         ` Faiz Abbas
  0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2018-07-06 10:35 UTC (permalink / raw)
  To: Faiz Abbas
  Cc: linux-kernel, devicetree, linux-omap, linux-arm-kernel,
	linux-clk, robh+dt, bcousson, paul, t-kristo, mark.rutland

* Faiz Abbas <faiz_abbas@ti.com> [180706 10:05]:
> Hi,
> 
> On Thursday 05 July 2018 09:17 PM, Tony Lindgren wrote:
> > * Faiz Abbas <faiz_abbas@ti.com> [180705 14:24]:
> >> +static int sysc_reset(struct sysc *ddata)
> >> +{
> >> +	int offset = ddata->offsets[SYSC_SYSCONFIG];
> >> +	int val = sysc_read(ddata, offset);
> > 
> > Can you please just warn and return early for now if no
> > syss_mask is specified? Otherwise we'll have mysterious
> > errors if somebody leaves out "ti,hwmods" for module types
> > we do not yet support reset for.
> 
> RESET write to sysconfig can still happen even if there's no syss_mask
> right? Not all modules need to poll on reset status.

It can but we currently don't have anything similar to
srst_udelay like we have in _ocp_softreset(). And we don't
currently have suport for sysc reset done bit.

So we want to warn and return error except in the known
working case for now.

Regards,

Tony

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

* Re: [PATCH v4 4/6] bus: ti-sysc: Add support for software reset
  2018-07-06 10:35       ` Tony Lindgren
@ 2018-07-06 12:35         ` Faiz Abbas
  0 siblings, 0 replies; 12+ messages in thread
From: Faiz Abbas @ 2018-07-06 12:35 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-kernel, devicetree, linux-omap, linux-arm-kernel,
	linux-clk, robh+dt, bcousson, paul, t-kristo, mark.rutland

Hi,

On Friday 06 July 2018 04:05 PM, Tony Lindgren wrote:
> * Faiz Abbas <faiz_abbas@ti.com> [180706 10:05]:
>> Hi,
>>
>> On Thursday 05 July 2018 09:17 PM, Tony Lindgren wrote:
>>> * Faiz Abbas <faiz_abbas@ti.com> [180705 14:24]:
>>>> +static int sysc_reset(struct sysc *ddata)
>>>> +{
>>>> +	int offset = ddata->offsets[SYSC_SYSCONFIG];
>>>> +	int val = sysc_read(ddata, offset);
>>>
>>> Can you please just warn and return early for now if no
>>> syss_mask is specified? Otherwise we'll have mysterious
>>> errors if somebody leaves out "ti,hwmods" for module types
>>> we do not yet support reset for.
>>
>> RESET write to sysconfig can still happen even if there's no syss_mask
>> right? Not all modules need to poll on reset status.
> 
> It can but we currently don't have anything similar to
> srst_udelay like we have in _ocp_softreset(). And we don't
> currently have suport for sysc reset done bit.
> 
> So we want to warn and return error except in the known
> working case for now.
> 

Ok.

Thanks,
Faiz

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

* Re: [PATCH v4 2/6] clk: ti: dra7: Add clkctrl clock data for the mcan clocks
  2018-07-05 14:23 ` [PATCH v4 2/6] clk: ti: dra7: Add clkctrl clock data for the mcan clocks Faiz Abbas
@ 2018-07-06 20:47   ` Stephen Boyd
  0 siblings, 0 replies; 12+ messages in thread
From: Stephen Boyd @ 2018-07-06 20:47 UTC (permalink / raw)
  To: Faiz Abbas, devicetree, linux-arm-kernel, linux-clk,
	linux-kernel, linux-omap
  Cc: mark.rutland, paul, tony, faiz_abbas, t-kristo, robh+dt, bcousson

Quoting Faiz Abbas (2018-07-05 07:23:15)
> Add clkctrl data for the m_can clocks and register it within the
> clkctrl driver
> 
> Acked-by: Rob Herring <robh@kernel.org>
> CC: Tero Kristo <t-kristo@ti.com>
> Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
> ---

Acked-by: Stephen Boyd <sboyd@kernel.org>

but Tero should ack it too.


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

end of thread, other threads:[~2018-07-06 20:47 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-05 14:23 [PATCH v4 0/6] Add MCAN Support for dra76x Faiz Abbas
2018-07-05 14:23 ` [PATCH v4 1/6] ARM: dts: dra762: Add MCAN clock support Faiz Abbas
2018-07-05 14:23 ` [PATCH v4 2/6] clk: ti: dra7: Add clkctrl clock data for the mcan clocks Faiz Abbas
2018-07-06 20:47   ` Stephen Boyd
2018-07-05 14:23 ` [PATCH v4 3/6] bus: ti-sysc: Add support for using ti-sysc for MCAN on dra76x Faiz Abbas
2018-07-05 14:23 ` [PATCH v4 4/6] bus: ti-sysc: Add support for software reset Faiz Abbas
2018-07-05 15:47   ` Tony Lindgren
2018-07-06 10:04     ` Faiz Abbas
2018-07-06 10:35       ` Tony Lindgren
2018-07-06 12:35         ` Faiz Abbas
2018-07-05 14:23 ` [PATCH v4 5/6] ARM: dts: Add generic interconnect target module node for MCAN Faiz Abbas
2018-07-05 14:23 ` [PATCH v4 6/6] ARM: dts: dra76x: Add MCAN node Faiz Abbas

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).