* [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
* 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
* [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
* 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
* [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