mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
bus: ti-sysc: Add support for using ti-sysc for MCAN on dra76x
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> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
91c17a7006
commit
7f35e63dbf
@ -36,6 +36,7 @@ Required standard properties:
|
|||||||
"ti,sysc-omap-aes"
|
"ti,sysc-omap-aes"
|
||||||
"ti,sysc-mcasp"
|
"ti,sysc-mcasp"
|
||||||
"ti,sysc-usb-host-fs"
|
"ti,sysc-usb-host-fs"
|
||||||
|
"ti,sysc-dra7-mcan"
|
||||||
|
|
||||||
- reg shall have register areas implemented for the interconnect
|
- reg shall have register areas implemented for the interconnect
|
||||||
target module in question such as revision, sysc and syss
|
target module in question such as revision, sysc and syss
|
||||||
|
@ -1552,6 +1552,23 @@ static const struct sysc_capabilities sysc_omap4_usb_host_fs = {
|
|||||||
.regbits = &sysc_regbits_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)
|
static int sysc_init_pdata(struct sysc *ddata)
|
||||||
{
|
{
|
||||||
struct ti_sysc_platform_data *pdata = dev_get_platdata(ddata->dev);
|
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-mcasp", .data = &sysc_omap4_mcasp, },
|
||||||
{ .compatible = "ti,sysc-usb-host-fs",
|
{ .compatible = "ti,sysc-usb-host-fs",
|
||||||
.data = &sysc_omap4_usb_host_fs, },
|
.data = &sysc_omap4_usb_host_fs, },
|
||||||
|
{ .compatible = "ti,sysc-dra7-mcan", .data = &sysc_dra7_mcan, },
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, sysc_match);
|
MODULE_DEVICE_TABLE(of, sysc_match);
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
/* SmartReflex sysc found on 36xx and later */
|
/* SmartReflex sysc found on 36xx and later */
|
||||||
#define SYSC_OMAP3_SR_ENAWAKEUP (1 << 26)
|
#define SYSC_OMAP3_SR_ENAWAKEUP (1 << 26)
|
||||||
|
|
||||||
|
#define SYSC_DRA7_MCAN_ENAWAKEUP (1 << 4)
|
||||||
|
|
||||||
/* SYSCONFIG STANDBYMODE/MIDLEMODE/SIDLEMODE supported by hardware */
|
/* SYSCONFIG STANDBYMODE/MIDLEMODE/SIDLEMODE supported by hardware */
|
||||||
#define SYSC_IDLE_FORCE 0
|
#define SYSC_IDLE_FORCE 0
|
||||||
#define SYSC_IDLE_NO 1
|
#define SYSC_IDLE_NO 1
|
||||||
|
@ -14,6 +14,7 @@ enum ti_sysc_module_type {
|
|||||||
TI_SYSC_OMAP4_SR,
|
TI_SYSC_OMAP4_SR,
|
||||||
TI_SYSC_OMAP4_MCASP,
|
TI_SYSC_OMAP4_MCASP,
|
||||||
TI_SYSC_OMAP4_USB_HOST_FS,
|
TI_SYSC_OMAP4_USB_HOST_FS,
|
||||||
|
TI_SYSC_DRA7_MCAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ti_sysc_cookie {
|
struct ti_sysc_cookie {
|
||||||
|
Loading…
Reference in New Issue
Block a user