Message ID | 20180530141133.3711-5-faiz_abbas@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
* Faiz Abbas <faiz_abbas@ti.com> [180530 14:12]: > The dra76x MCAN generic interconnect module has a its own > format for the bits in the control registers. ... > --- a/drivers/bus/ti-sysc.c > +++ b/drivers/bus/ti-sysc.c > @@ -1262,6 +1262,22 @@ 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, > + .regbits = &sysc_regbits_dra7_mcan, > +}; > + > static int sysc_init_pdata(struct sysc *ddata) > { > struct ti_sysc_platform_data *pdata = dev_get_platdata(ddata->dev); > @@ -1441,6 +1457,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, }, > { }, > }; Looks good to me. And presumably you checked that no other dra7 modules use sysconfig register bit layout like this? Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, May 30, 2018 at 07:41:31PM +0530, Faiz Abbas wrote: > 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. > > 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 | 17 +++++++++++++++++ > include/dt-bindings/bus/ti-sysc.h | 2 ++ > include/linux/platform_data/ti-sysc.h | 1 + > 4 files changed, 21 insertions(+) For the DT bits: Acked-by: Rob Herring <robh@kernel.org> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, On Wednesday 30 May 2018 08:27 PM, Tony Lindgren wrote: > * Faiz Abbas <faiz_abbas@ti.com> [180530 14:12]: >> The dra76x MCAN generic interconnect module has a its own >> format for the bits in the control registers. ... >> static int sysc_init_pdata(struct sysc *ddata) >> { >> struct ti_sysc_platform_data *pdata = dev_get_platdata(ddata->dev); >> @@ -1441,6 +1457,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, }, >> { }, >> }; > > Looks good to me. And presumably you checked that no other dra7 modules > use sysconfig register bit layout like this? > As far as I could see, Yes. Thanks, Faiz -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
* Faiz Abbas <faiz_abbas@ti.com> [180531 10:17]: > Hi, > > On Wednesday 30 May 2018 08:27 PM, Tony Lindgren wrote: > > * Faiz Abbas <faiz_abbas@ti.com> [180530 14:12]: > >> The dra76x MCAN generic interconnect module has a its own > >> format for the bits in the control registers. > ... > >> static int sysc_init_pdata(struct sysc *ddata) > >> { > >> struct ti_sysc_platform_data *pdata = dev_get_platdata(ddata->dev); > >> @@ -1441,6 +1457,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, }, > >> { }, > >> }; > > > > Looks good to me. And presumably you checked that no other dra7 modules > > use sysconfig register bit layout like this? > > > > As far as I could see, Yes. OK thanks for checking it. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/devicetree/bindings/bus/ti-sysc.txt b/Documentation/devicetree/bindings/bus/ti-sysc.txt index 2957a9ae291f..ebbb11144b7b 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 7cd2fd04b212..83b47974567a 100644 --- a/drivers/bus/ti-sysc.c +++ b/drivers/bus/ti-sysc.c @@ -1262,6 +1262,22 @@ 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, + .regbits = &sysc_regbits_dra7_mcan, +}; + static int sysc_init_pdata(struct sysc *ddata) { struct ti_sysc_platform_data *pdata = dev_get_platdata(ddata->dev); @@ -1441,6 +1457,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 80ce28d40832..1ea3aab972b4 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 {
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. 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 | 17 +++++++++++++++++ include/dt-bindings/bus/ti-sysc.h | 2 ++ include/linux/platform_data/ti-sysc.h | 1 + 4 files changed, 21 insertions(+)