Message ID | 20180302122031.17426-1-heiko@sntech.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2018/3/2 20:20, Heiko Stuebner wrote: > From: Xiao Yao <xiaoyao@rock-chips.com> > > Disable IO function switching between sdmmc and jtag > for RK3128 SoCs. > I acked this on the vendor kernel tree, so FWIW: Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com> Hope this is one of the final patches for that, as I would revive IO function switching between sdmmc and jtag for newer SoCs after addressing the problem from HW level. > Signed-off-by: Xiao Yao <xiaoyao@rock-chips.com> > Signed-off-by: Heiko Stuebner <heiko@sntech.de> > --- > drivers/soc/rockchip/grf.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/soc/rockchip/grf.c b/drivers/soc/rockchip/grf.c > index dd81b87d79f0..96882ffde67e 100644 > --- a/drivers/soc/rockchip/grf.c > +++ b/drivers/soc/rockchip/grf.c > @@ -43,6 +43,17 @@ static const struct rockchip_grf_info rk3036_grf __initconst = { > .num_values = ARRAY_SIZE(rk3036_defaults), > }; > > +#define RK3128_GRF_SOC_CON0 0x140 > + > +static const struct rockchip_grf_value rk3128_defaults[] __initconst = { > + { "jtag switching", RK3128_GRF_SOC_CON0, HIWORD_UPDATE(0, 1, 8) }, > +}; > + > +static const struct rockchip_grf_info rk3128_grf __initconst = { > + .values = rk3128_defaults, > + .num_values = ARRAY_SIZE(rk3128_defaults), > +}; > + > #define RK3228_GRF_SOC_CON6 0x418 > > static const struct rockchip_grf_value rk3228_defaults[] __initconst = { > @@ -102,6 +113,9 @@ static const struct of_device_id rockchip_grf_dt_match[] __initconst = { > { > .compatible = "rockchip,rk3036-grf", > .data = (void *)&rk3036_grf, > + }, { > + .compatible = "rockchip,rk3128-grf", > + .data = (void *)&rk3128_grf, > }, { > .compatible = "rockchip,rk3228-grf", > .data = (void *)&rk3228_grf, >
Hi Shawn, Am Montag, 5. März 2018, 15:39:04 CET schrieb Shawn Lin: > On 2018/3/2 20:20, Heiko Stuebner wrote: > > From: Xiao Yao <xiaoyao@rock-chips.com> > > > > Disable IO function switching between sdmmc and jtag > > for RK3128 SoCs. > > > > I acked this on the vendor kernel tree, so FWIW: > > Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com> > > Hope this is one of the final patches for that, as I would > revive IO function switching between sdmmc and jtag for newer > SoCs after addressing the problem from HW level. the main problem we had with that was that the mmc-subsystem somehow definitly didn't like it when the controller pins where pulled out from under it on card eject. But of course, if you can get this solved by hw somehow, that would be pretty cool :-) Heiko
On 2018/3/5 22:42, Heiko Stuebner wrote: > Hi Shawn, > > Am Montag, 5. März 2018, 15:39:04 CET schrieb Shawn Lin: >> On 2018/3/2 20:20, Heiko Stuebner wrote: >>> From: Xiao Yao <xiaoyao@rock-chips.com> >>> >>> Disable IO function switching between sdmmc and jtag >>> for RK3128 SoCs. >>> >> >> I acked this on the vendor kernel tree, so FWIW: >> >> Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com> >> >> Hope this is one of the final patches for that, as I would >> revive IO function switching between sdmmc and jtag for newer >> SoCs after addressing the problem from HW level. > > the main problem we had with that was that the mmc-subsystem > somehow definitly didn't like it when the controller pins where pulled > out from under it on card eject. Right, we had sort out it's timing revelant between mmc controller and the switching hw block. > > But of course, if you can get this solved by hw somehow, that > would be pretty cool :-) It is under extensively tested now, and seems quite positive. :) > > > Heiko > > >
diff --git a/drivers/soc/rockchip/grf.c b/drivers/soc/rockchip/grf.c index dd81b87d79f0..96882ffde67e 100644 --- a/drivers/soc/rockchip/grf.c +++ b/drivers/soc/rockchip/grf.c @@ -43,6 +43,17 @@ static const struct rockchip_grf_info rk3036_grf __initconst = { .num_values = ARRAY_SIZE(rk3036_defaults), }; +#define RK3128_GRF_SOC_CON0 0x140 + +static const struct rockchip_grf_value rk3128_defaults[] __initconst = { + { "jtag switching", RK3128_GRF_SOC_CON0, HIWORD_UPDATE(0, 1, 8) }, +}; + +static const struct rockchip_grf_info rk3128_grf __initconst = { + .values = rk3128_defaults, + .num_values = ARRAY_SIZE(rk3128_defaults), +}; + #define RK3228_GRF_SOC_CON6 0x418 static const struct rockchip_grf_value rk3228_defaults[] __initconst = { @@ -102,6 +113,9 @@ static const struct of_device_id rockchip_grf_dt_match[] __initconst = { { .compatible = "rockchip,rk3036-grf", .data = (void *)&rk3036_grf, + }, { + .compatible = "rockchip,rk3128-grf", + .data = (void *)&rk3128_grf, }, { .compatible = "rockchip,rk3228-grf", .data = (void *)&rk3228_grf,