Message ID | 1452667666-17533-2-git-send-email-kishon@ti.com |
---|---|
State | Superseded |
Headers | show |
On 01/13/2016 11:13 AM, Tony Lindgren wrote: > * Kishon Vijay Abraham I <kishon@ti.com> [160112 22:48]: >> Add PCIe reset data to PCIe hwmods on DRA7x. > > Adding Paul and Tero to Cc. I don't see other solution to get > the PCI driver working until the reset driver is available. > > Regards, > > Tony > >> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> >> Signed-off-by: Sekhar Nori <nsekhar@ti.com> Reviewed-by: Suman Anna <s-anna@ti.com> >> --- >> arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 15 +++++++++++++++ >> arch/arm/mach-omap2/prm7xx.h | 1 + >> 2 files changed, 16 insertions(+) >> >> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c >> index ee4e044..1281deb 100644 >> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c >> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c >> @@ -1532,14 +1532,21 @@ static struct omap_hwmod_class dra7xx_pciess_hwmod_class = { >> }; >> >> /* pcie1 */ >> +static struct omap_hwmod_rst_info dra7xx_pciess1_resets[] = { >> + { .name = "pcie", .rst_shift = 0 }, >> +}; >> + >> static struct omap_hwmod dra7xx_pciess1_hwmod = { >> .name = "pcie1", >> .class = &dra7xx_pciess_hwmod_class, >> .clkdm_name = "pcie_clkdm", >> + .rst_lines = dra7xx_pciess1_resets, >> + .rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess1_resets), >> .main_clk = "l4_root_clk_div", >> .prcm = { >> .omap4 = { >> .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET, >> + .rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET, >> .context_offs = DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET, >> .modulemode = MODULEMODE_SWCTRL, >> }, >> @@ -1547,14 +1554,22 @@ static struct omap_hwmod dra7xx_pciess1_hwmod = { >> }; >> >> /* pcie2 */ >> +static struct omap_hwmod_rst_info dra7xx_pciess2_resets[] = { >> + { .name = "pcie", .rst_shift = 1 }, >> +}; >> + >> +/* pcie2 */ >> static struct omap_hwmod dra7xx_pciess2_hwmod = { >> .name = "pcie2", >> .class = &dra7xx_pciess_hwmod_class, >> .clkdm_name = "pcie_clkdm", >> + .rst_lines = dra7xx_pciess2_resets, >> + .rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess2_resets), >> .main_clk = "l4_root_clk_div", >> .prcm = { >> .omap4 = { >> .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET, >> + .rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET, >> .context_offs = DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET, >> .modulemode = MODULEMODE_SWCTRL, >> }, >> diff --git a/arch/arm/mach-omap2/prm7xx.h b/arch/arm/mach-omap2/prm7xx.h >> index cc1e6a2..294deed 100644 >> --- a/arch/arm/mach-omap2/prm7xx.h >> +++ b/arch/arm/mach-omap2/prm7xx.h >> @@ -360,6 +360,7 @@ >> /* PRM.L3INIT_PRM register offsets */ >> #define DRA7XX_PM_L3INIT_PWRSTCTRL_OFFSET 0x0000 >> #define DRA7XX_PM_L3INIT_PWRSTST_OFFSET 0x0004 >> +#define DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET 0x0010 >> #define DRA7XX_PM_L3INIT_MMC1_WKDEP_OFFSET 0x0028 >> #define DRA7XX_RM_L3INIT_MMC1_CONTEXT_OFFSET 0x002c >> #define DRA7XX_PM_L3INIT_MMC2_WKDEP_OFFSET 0x0030 >> -- >> 1.7.9.5 >>
diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c index ee4e044..1281deb 100644 --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c @@ -1532,14 +1532,21 @@ static struct omap_hwmod_class dra7xx_pciess_hwmod_class = { }; /* pcie1 */ +static struct omap_hwmod_rst_info dra7xx_pciess1_resets[] = { + { .name = "pcie", .rst_shift = 0 }, +}; + static struct omap_hwmod dra7xx_pciess1_hwmod = { .name = "pcie1", .class = &dra7xx_pciess_hwmod_class, .clkdm_name = "pcie_clkdm", + .rst_lines = dra7xx_pciess1_resets, + .rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess1_resets), .main_clk = "l4_root_clk_div", .prcm = { .omap4 = { .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET, + .rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET, .context_offs = DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET, .modulemode = MODULEMODE_SWCTRL, }, @@ -1547,14 +1554,22 @@ static struct omap_hwmod dra7xx_pciess1_hwmod = { }; /* pcie2 */ +static struct omap_hwmod_rst_info dra7xx_pciess2_resets[] = { + { .name = "pcie", .rst_shift = 1 }, +}; + +/* pcie2 */ static struct omap_hwmod dra7xx_pciess2_hwmod = { .name = "pcie2", .class = &dra7xx_pciess_hwmod_class, .clkdm_name = "pcie_clkdm", + .rst_lines = dra7xx_pciess2_resets, + .rst_lines_cnt = ARRAY_SIZE(dra7xx_pciess2_resets), .main_clk = "l4_root_clk_div", .prcm = { .omap4 = { .clkctrl_offs = DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET, + .rstctrl_offs = DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET, .context_offs = DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET, .modulemode = MODULEMODE_SWCTRL, }, diff --git a/arch/arm/mach-omap2/prm7xx.h b/arch/arm/mach-omap2/prm7xx.h index cc1e6a2..294deed 100644 --- a/arch/arm/mach-omap2/prm7xx.h +++ b/arch/arm/mach-omap2/prm7xx.h @@ -360,6 +360,7 @@ /* PRM.L3INIT_PRM register offsets */ #define DRA7XX_PM_L3INIT_PWRSTCTRL_OFFSET 0x0000 #define DRA7XX_PM_L3INIT_PWRSTST_OFFSET 0x0004 +#define DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET 0x0010 #define DRA7XX_PM_L3INIT_MMC1_WKDEP_OFFSET 0x0028 #define DRA7XX_RM_L3INIT_MMC1_CONTEXT_OFFSET 0x002c #define DRA7XX_PM_L3INIT_MMC2_WKDEP_OFFSET 0x0030