Message ID | 20180530141133.3711-2-faiz_abbas@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
* Faiz Abbas <faiz_abbas@ti.com> [180530 14:12]: > From: Lokesh Vutla <lokeshvutla@ti.com> > > Add MCAN hwmod data and register it for dra762 silicons. > > Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> > Signed-off-by: Faiz Abbas <faiz_abbas@ti.com> > --- > arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 32 +++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c > index 62352d1e6361..a2cd7f865a60 100644 > --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c > +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c > @@ -1355,6 +1355,29 @@ static struct omap_hwmod dra7xx_mailbox13_hwmod = { > }, > }; > > +/* > + * 'mcan' class > + * > + */ > +static struct omap_hwmod_class dra76x_mcan_hwmod_class = { > + .name = "mcan", > +}; > + > +/* mcan */ > +static struct omap_hwmod dra76x_mcan_hwmod = { > + .name = "mcan", > + .class = &dra76x_mcan_hwmod_class, > + .clkdm_name = "wkupaon_clkdm", > + .main_clk = "mcan_clk", > + .prcm = { > + .omap4 = { > + .clkctrl_offs = DRA7XX_CM_WKUPAON_ADC_CLKCTRL_OFFSET, > + .context_offs = DRA7XX_RM_WKUPAON_ADC_CONTEXT_OFFSET, > + .modulemode = MODULEMODE_SWCTRL, > + }, > + }, > +}; You should be now able to leave out at least the clkctrl_offs and modulemode here. Please also check if leaving out clkdm_name and main_clk now works :) > @@ -3818,6 +3841,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per2__epwmss2 = { > .user = OCP_USER_MPU, > }; > > +/* l3_main_1 -> mcan */ > +static struct omap_hwmod_ocp_if dra76x_l3_main_1__mcan = { > + .master = &dra7xx_l3_main_1_hwmod, > + .slave = &dra76x_mcan_hwmod, > + .clk = "l3_iclk_div", > + .user = OCP_USER_MPU | OCP_USER_SDMA, > +}; I think this we still need though for the clk. Tero, do you have any comments on what all clocks can now be left out? 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 30/05/18 17:50, Tony Lindgren wrote: > * Faiz Abbas <faiz_abbas@ti.com> [180530 14:12]: >> From: Lokesh Vutla <lokeshvutla@ti.com> >> >> Add MCAN hwmod data and register it for dra762 silicons. >> >> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> >> Signed-off-by: Faiz Abbas <faiz_abbas@ti.com> >> --- >> arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 32 +++++++++++++++++++++++ >> 1 file changed, 32 insertions(+) >> >> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c >> index 62352d1e6361..a2cd7f865a60 100644 >> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c >> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c >> @@ -1355,6 +1355,29 @@ static struct omap_hwmod dra7xx_mailbox13_hwmod = { >> }, >> }; >> >> +/* >> + * 'mcan' class >> + * >> + */ >> +static struct omap_hwmod_class dra76x_mcan_hwmod_class = { >> + .name = "mcan", >> +}; >> + >> +/* mcan */ >> +static struct omap_hwmod dra76x_mcan_hwmod = { >> + .name = "mcan", >> + .class = &dra76x_mcan_hwmod_class, >> + .clkdm_name = "wkupaon_clkdm", >> + .main_clk = "mcan_clk", >> + .prcm = { >> + .omap4 = { >> + .clkctrl_offs = DRA7XX_CM_WKUPAON_ADC_CLKCTRL_OFFSET, >> + .context_offs = DRA7XX_RM_WKUPAON_ADC_CONTEXT_OFFSET, >> + .modulemode = MODULEMODE_SWCTRL, >> + }, >> + }, >> +}; > > You should be now able to leave out at least the clkctrl_offs and modulemode > here. Please also check if leaving out clkdm_name and main_clk now works :) > >> @@ -3818,6 +3841,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per2__epwmss2 = { >> .user = OCP_USER_MPU, >> }; >> >> +/* l3_main_1 -> mcan */ >> +static struct omap_hwmod_ocp_if dra76x_l3_main_1__mcan = { >> + .master = &dra7xx_l3_main_1_hwmod, >> + .slave = &dra76x_mcan_hwmod, >> + .clk = "l3_iclk_div", >> + .user = OCP_USER_MPU | OCP_USER_SDMA, >> +}; > > I think this we still need though for the clk. Tero, do you have any comments > on what all clocks can now be left out? For the OCP if part, I think that is still needed until we switch over to full sysc driver. clkctrl_offs you probably also need because that is used for mapping the omap_hwmod against a specific clkctrl clock. Those can be only removed once we are done with hwmod (or figure out some other way to assign the clkctrl clock to a hwmod.) -Tero -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki -- 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
* Tero Kristo <t-kristo@ti.com> [180530 15:18]: > For the OCP if part, I think that is still needed until we switch over to > full sysc driver. clkctrl_offs you probably also need because that is used > for mapping the omap_hwmod against a specific clkctrl clock. Those can be > only removed once we are done with hwmod (or figure out some other way to > assign the clkctrl clock to a hwmod.) Hmm might be worth testing. I thought your commit 70f05be32133 ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") already parses the clkctrl from dts? 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 30/05/18 18:28, Tony Lindgren wrote: > * Tero Kristo <t-kristo@ti.com> [180530 15:18]: >> For the OCP if part, I think that is still needed until we switch over to >> full sysc driver. clkctrl_offs you probably also need because that is used >> for mapping the omap_hwmod against a specific clkctrl clock. Those can be >> only removed once we are done with hwmod (or figure out some other way to >> assign the clkctrl clock to a hwmod.) > > Hmm might be worth testing. I thought your commit 70f05be32133 > ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") > already parses the clkctrl from dts? It maps the clkctrl clock to be used by hwmod, if those are available. We didn't add any specific clock entries to DT for mapping the actual clkctrl clock without the hwmod_data hints yet though, as that was deemed temporary solution only due to transition to interconnect driver. I.e., you would need something like this in DT for every device node: &uart3 { clocks = <l4per_clkctrl UART3_CLK 0>; clock-names = "clkctrl"; }; ... which is currently not present. Alternatively you could rename the main_clk in the hwmod_data to point towards the clkctrl clock, but again, that would be a temporary solution only. -Tero -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki -- 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
* Tero Kristo <t-kristo@ti.com> [180530 15:44]: > On 30/05/18 18:28, Tony Lindgren wrote: > > * Tero Kristo <t-kristo@ti.com> [180530 15:18]: > > > For the OCP if part, I think that is still needed until we switch over to > > > full sysc driver. clkctrl_offs you probably also need because that is used > > > for mapping the omap_hwmod against a specific clkctrl clock. Those can be > > > only removed once we are done with hwmod (or figure out some other way to > > > assign the clkctrl clock to a hwmod.) > > > > Hmm might be worth testing. I thought your commit 70f05be32133 > > ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") > > already parses the clkctrl from dts? > > It maps the clkctrl clock to be used by hwmod, if those are available. We > didn't add any specific clock entries to DT for mapping the actual clkctrl > clock without the hwmod_data hints yet though, as that was deemed temporary > solution only due to transition to interconnect driver. I.e., you would need > something like this in DT for every device node: > > &uart3 { > clocks = <l4per_clkctrl UART3_CLK 0>; > clock-names = "clkctrl"; > }; > > ... which is currently not present. Hmm is that not the "fck" clkctrl clock we have already in the dts files for the interconnect target modules? We can also use pdata callbacks to pass the clock node if needed. But I guess I don't quite still understand what we are missing :) 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 30/05/18 18:54, Tony Lindgren wrote: > * Tero Kristo <t-kristo@ti.com> [180530 15:44]: >> On 30/05/18 18:28, Tony Lindgren wrote: >>> * Tero Kristo <t-kristo@ti.com> [180530 15:18]: >>>> For the OCP if part, I think that is still needed until we switch over to >>>> full sysc driver. clkctrl_offs you probably also need because that is used >>>> for mapping the omap_hwmod against a specific clkctrl clock. Those can be >>>> only removed once we are done with hwmod (or figure out some other way to >>>> assign the clkctrl clock to a hwmod.) >>> >>> Hmm might be worth testing. I thought your commit 70f05be32133 >>> ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") >>> already parses the clkctrl from dts? >> >> It maps the clkctrl clock to be used by hwmod, if those are available. We >> didn't add any specific clock entries to DT for mapping the actual clkctrl >> clock without the hwmod_data hints yet though, as that was deemed temporary >> solution only due to transition to interconnect driver. I.e., you would need >> something like this in DT for every device node: >> >> &uart3 { >> clocks = <l4per_clkctrl UART3_CLK 0>; >> clock-names = "clkctrl"; >> }; >> >> ... which is currently not present. > > Hmm is that not the "fck" clkctrl clock we have already in > the dts files for the interconnect target modules? Oh okay, yeah, we could parse that one, but currently it is not done, and is not present for everything either I believe. > We can also use pdata callbacks to pass the clock node if > needed. But I guess I don't quite still understand what we > are missing :) So, what is missing is the glue logic only from the hwmod codebase. Right now this is not supported but should be relatively trivial thing to add if we really want to do this. -Tero -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki -- 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
* Tero Kristo <t-kristo@ti.com> [180531 06:18]: > On 30/05/18 18:54, Tony Lindgren wrote: > > * Tero Kristo <t-kristo@ti.com> [180530 15:44]: > > > On 30/05/18 18:28, Tony Lindgren wrote: > > > > * Tero Kristo <t-kristo@ti.com> [180530 15:18]: > > > > > For the OCP if part, I think that is still needed until we switch over to > > > > > full sysc driver. clkctrl_offs you probably also need because that is used > > > > > for mapping the omap_hwmod against a specific clkctrl clock. Those can be > > > > > only removed once we are done with hwmod (or figure out some other way to > > > > > assign the clkctrl clock to a hwmod.) > > > > > > > > Hmm might be worth testing. I thought your commit 70f05be32133 > > > > ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") > > > > already parses the clkctrl from dts? > > > > > > It maps the clkctrl clock to be used by hwmod, if those are available. We > > > didn't add any specific clock entries to DT for mapping the actual clkctrl > > > clock without the hwmod_data hints yet though, as that was deemed temporary > > > solution only due to transition to interconnect driver. I.e., you would need > > > something like this in DT for every device node: > > > > > > &uart3 { > > > clocks = <l4per_clkctrl UART3_CLK 0>; > > > clock-names = "clkctrl"; > > > }; > > > > > > ... which is currently not present. > > > > Hmm is that not the "fck" clkctrl clock we have already in > > the dts files for the interconnect target modules? > > Oh okay, yeah, we could parse that one, but currently it is not done, and is > not present for everything either I believe. > > > We can also use pdata callbacks to pass the clock node if > > needed. But I guess I don't quite still understand what we > > are missing :) > > So, what is missing is the glue logic only from the hwmod codebase. Right > now this is not supported but should be relatively trivial thing to add if > we really want to do this. OK let's think about this a bit for v4.19 then. 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
Hi, On Thursday 31 May 2018 08:56 PM, Tony Lindgren wrote: > * Tero Kristo <t-kristo@ti.com> [180531 06:18]: >> On 30/05/18 18:54, Tony Lindgren wrote: >>> * Tero Kristo <t-kristo@ti.com> [180530 15:44]: >>>> On 30/05/18 18:28, Tony Lindgren wrote: >>>>> * Tero Kristo <t-kristo@ti.com> [180530 15:18]: >>>>>> For the OCP if part, I think that is still needed until we switch over to >>>>>> full sysc driver. clkctrl_offs you probably also need because that is used >>>>>> for mapping the omap_hwmod against a specific clkctrl clock. Those can be >>>>>> only removed once we are done with hwmod (or figure out some other way to >>>>>> assign the clkctrl clock to a hwmod.) >>>>> >>>>> Hmm might be worth testing. I thought your commit 70f05be32133 >>>>> ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") >>>>> already parses the clkctrl from dts? >>>> >>>> It maps the clkctrl clock to be used by hwmod, if those are available. We >>>> didn't add any specific clock entries to DT for mapping the actual clkctrl >>>> clock without the hwmod_data hints yet though, as that was deemed temporary >>>> solution only due to transition to interconnect driver. I.e., you would need >>>> something like this in DT for every device node: >>>> >>>> &uart3 { >>>> clocks = <l4per_clkctrl UART3_CLK 0>; >>>> clock-names = "clkctrl"; >>>> }; >>>> >>>> ... which is currently not present. >>> >>> Hmm is that not the "fck" clkctrl clock we have already in >>> the dts files for the interconnect target modules? >> >> Oh okay, yeah, we could parse that one, but currently it is not done, and is >> not present for everything either I believe. >> >>> We can also use pdata callbacks to pass the clock node if >>> needed. But I guess I don't quite still understand what we >>> are missing :) >> >> So, what is missing is the glue logic only from the hwmod codebase. Right >> now this is not supported but should be relatively trivial thing to add if >> we really want to do this. > > OK let's think about this a bit for v4.19 then. > I am not sure what the conclusion is. Should I try removing the clkctrl_offsets, clkdm_name, and main_clk? 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 16:36]: > Hi, > > On Thursday 31 May 2018 08:56 PM, Tony Lindgren wrote: > > * Tero Kristo <t-kristo@ti.com> [180531 06:18]: > >> On 30/05/18 18:54, Tony Lindgren wrote: > >>> * Tero Kristo <t-kristo@ti.com> [180530 15:44]: > >>>> On 30/05/18 18:28, Tony Lindgren wrote: > >>>>> * Tero Kristo <t-kristo@ti.com> [180530 15:18]: > >>>>>> For the OCP if part, I think that is still needed until we switch over to > >>>>>> full sysc driver. clkctrl_offs you probably also need because that is used > >>>>>> for mapping the omap_hwmod against a specific clkctrl clock. Those can be > >>>>>> only removed once we are done with hwmod (or figure out some other way to > >>>>>> assign the clkctrl clock to a hwmod.) > >>>>> > >>>>> Hmm might be worth testing. I thought your commit 70f05be32133 > >>>>> ("ARM: OMAP2+: hwmod: populate clkctrl clocks for hwmods if available") > >>>>> already parses the clkctrl from dts? > >>>> > >>>> It maps the clkctrl clock to be used by hwmod, if those are available. We > >>>> didn't add any specific clock entries to DT for mapping the actual clkctrl > >>>> clock without the hwmod_data hints yet though, as that was deemed temporary > >>>> solution only due to transition to interconnect driver. I.e., you would need > >>>> something like this in DT for every device node: > >>>> > >>>> &uart3 { > >>>> clocks = <l4per_clkctrl UART3_CLK 0>; > >>>> clock-names = "clkctrl"; > >>>> }; > >>>> > >>>> ... which is currently not present. > >>> > >>> Hmm is that not the "fck" clkctrl clock we have already in > >>> the dts files for the interconnect target modules? > >> > >> Oh okay, yeah, we could parse that one, but currently it is not done, and is > >> not present for everything either I believe. > >> > >>> We can also use pdata callbacks to pass the clock node if > >>> needed. But I guess I don't quite still understand what we > >>> are missing :) > >> > >> So, what is missing is the glue logic only from the hwmod codebase. Right > >> now this is not supported but should be relatively trivial thing to add if > >> we really want to do this. > > > > OK let's think about this a bit for v4.19 then. > > > > I am not sure what the conclusion is. Should I try removing the > clkctrl_offsets, clkdm_name, and main_clk? No need to, it's not going to work currently without them. 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/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c index 62352d1e6361..a2cd7f865a60 100644 --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c @@ -1355,6 +1355,29 @@ static struct omap_hwmod dra7xx_mailbox13_hwmod = { }, }; +/* + * 'mcan' class + * + */ +static struct omap_hwmod_class dra76x_mcan_hwmod_class = { + .name = "mcan", +}; + +/* mcan */ +static struct omap_hwmod dra76x_mcan_hwmod = { + .name = "mcan", + .class = &dra76x_mcan_hwmod_class, + .clkdm_name = "wkupaon_clkdm", + .main_clk = "mcan_clk", + .prcm = { + .omap4 = { + .clkctrl_offs = DRA7XX_CM_WKUPAON_ADC_CLKCTRL_OFFSET, + .context_offs = DRA7XX_RM_WKUPAON_ADC_CONTEXT_OFFSET, + .modulemode = MODULEMODE_SWCTRL, + }, + }, +}; + /* * 'mcspi' class * @@ -3818,6 +3841,14 @@ static struct omap_hwmod_ocp_if dra7xx_l4_per2__epwmss2 = { .user = OCP_USER_MPU, }; +/* l3_main_1 -> mcan */ +static struct omap_hwmod_ocp_if dra76x_l3_main_1__mcan = { + .master = &dra7xx_l3_main_1_hwmod, + .slave = &dra76x_mcan_hwmod, + .clk = "l3_iclk_div", + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { &dra7xx_l3_main_1__dmm, &dra7xx_l3_main_2__l3_instr, @@ -3958,6 +3989,7 @@ static struct omap_hwmod_ocp_if *dra7xx_gp_hwmod_ocp_ifs[] __initdata = { /* SoC variant specific hwmod links */ static struct omap_hwmod_ocp_if *dra76x_hwmod_ocp_ifs[] __initdata = { &dra7xx_l4_per3__usb_otg_ss4, + &dra76x_l3_main_1__mcan, NULL, };