* [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb @ 2021-04-12 23:03 Giulio Benetti 2021-04-12 23:03 ` [PATCH 1/5] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti ` (5 more replies) 0 siblings, 6 replies; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:03 UTC (permalink / raw) To: u-boot This patchset fixes u-boot hang on i.MXRT1050 while setting lcdif in mxsfb driver. There are 2 gates to be enabled to initialize mxsfb so let's introduce the missing gate as a clock and rename "per" clock to "pix" clock since in the other .dts files using *-lcdif "pix" is used. This patchset add also "disp_axi" clock enabling in mxsfb that should make able to every i.MX SoC with lcdif using DT. I didn't test it other than i.MXRT1050 since I don't have the boards. If someone can test it it would be great. Note that i.MX23/28 should fail using DT instead because they don't specify any clock-names in their dts. Giulio Benetti (5): video: mxsfb: add enabling of "axi" clock other than "per" clock video: mxsfb: add enabling of "disp_axi" clock clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB ARM: dts: imxrt1050: move lcdif assigned clock to dtsi ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver arch/arm/dts/imxrt1050-evk.dts | 3 -- arch/arm/dts/imxrt1050.dtsi | 7 ++-- drivers/clk/imx/clk-imxrt1050.c | 6 ++-- drivers/video/mxsfb.c | 36 +++++++++++++++++---- include/dt-bindings/clock/imxrt1050-clock.h | 5 +-- 5 files changed, 41 insertions(+), 16 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH 1/5] video: mxsfb: add enabling of "axi" clock other than "per" clock 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti @ 2021-04-12 23:03 ` Giulio Benetti 2021-04-12 23:03 ` [PATCH 2/5] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti ` (4 subsequent siblings) 5 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:03 UTC (permalink / raw) To: u-boot On some SoC mxsfb needs more than one clock gate(actual "per" clock). So let's introduce "axi" clock that can be provided but it's not mandatory. This is inspired from linux mxsfb driver. Also let's rename "per" clock to "pix" clock for compatibility with already existing .dts lcdif nodes implementation. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/video/mxsfb.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index e1fd36a62d..147bd668fe 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -67,26 +67,37 @@ static void mxs_lcd_init(struct udevice *dev, u32 fb_addr, uint32_t vdctrl0; #if CONFIG_IS_ENABLED(CLK) - struct clk per_clk; + struct clk clk; int ret; - ret = clk_get_by_name(dev, "per", &per_clk); + ret = clk_get_by_name(dev, "pix", &clk); if (ret) { - dev_err(dev, "Failed to get mxs clk: %d\n", ret); + dev_err(dev, "Failed to get mxs pix clk: %d\n", ret); return; } - ret = clk_set_rate(&per_clk, timings->pixelclock.typ); + ret = clk_set_rate(&clk, timings->pixelclock.typ); if (ret < 0) { - dev_err(dev, "Failed to set mxs clk: %d\n", ret); + dev_err(dev, "Failed to set mxs pix clk: %d\n", ret); return; } - ret = clk_enable(&per_clk); + ret = clk_enable(&clk); if (ret < 0) { - dev_err(dev, "Failed to enable mxs clk: %d\n", ret); + dev_err(dev, "Failed to enable mxs pix clk: %d\n", ret); return; } + + ret = clk_get_by_name(dev, "axi", &clk); + if (!ret) { + debug("%s: Failed to get mxs axi clk: %d\n", __func__, ret); + } else { + ret = clk_enable(&clk); + if (ret < 0) { + dev_err(dev, "Failed to enable mxs axi clk: %d\n", ret); + return; + } + } #else /* Kick in the LCDIF clock */ mxs_set_lcdclk(MXS_LCDIF_BASE, timings->pixelclock.typ / 1000); -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 2/5] video: mxsfb: add enabling of "disp_axi" clock 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 2021-04-12 23:03 ` [PATCH 1/5] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti @ 2021-04-12 23:03 ` Giulio Benetti 2021-04-12 23:03 ` [PATCH 3/5] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti ` (3 subsequent siblings) 5 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:03 UTC (permalink / raw) To: u-boot Some SoC needs "disp_axi" clock to be enabled, so let's try to retrieve it and enabling. If it fails it gives only a debug(), but this clock as well as "axi" clock is not mandatory. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/video/mxsfb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 147bd668fe..523d8a8d98 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -98,6 +98,17 @@ static void mxs_lcd_init(struct udevice *dev, u32 fb_addr, return; } } + + ret = clk_get_by_name(dev, "disp_axi", &clk); + if (!ret) { + debug("%s: Failed to get mxs disp_axi clk: %d\n", __func__, ret); + } else { + ret = clk_enable(&clk); + if (ret < 0) { + dev_err(dev, "Failed to enable mxs disp_axi clk: %d\n", ret); + return; + } + } #else /* Kick in the LCDIF clock */ mxs_set_lcdclk(MXS_LCDIF_BASE, timings->pixelclock.typ / 1000); -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 3/5] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 2021-04-12 23:03 ` [PATCH 1/5] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti 2021-04-12 23:03 ` [PATCH 2/5] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti @ 2021-04-12 23:03 ` Giulio Benetti 2021-04-12 23:03 ` [PATCH 4/5] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti ` (2 subsequent siblings) 5 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:03 UTC (permalink / raw) To: u-boot Lcd peripheral needs 2 different gates to be enable to work, so let's introduce the missing one(LCDIF_PIX) and rename the existing one (LCDIF_APB). Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/clk/imx/clk-imxrt1050.c | 6 ++++-- include/dt-bindings/clock/imxrt1050-clock.h | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/clk/imx/clk-imxrt1050.c b/drivers/clk/imx/clk-imxrt1050.c index 594093ee5f..eb6847f865 100644 --- a/drivers/clk/imx/clk-imxrt1050.c +++ b/drivers/clk/imx/clk-imxrt1050.c @@ -255,8 +255,10 @@ static int imxrt1050_clk_probe(struct udevice *dev) imx_clk_gate2("lpuart1", "lpuart_podf", base + 0x7c, 24)); clk_dm(IMXRT1050_CLK_SEMC, imx_clk_gate2("semc", "semc_podf", base + 0x74, 4)); - clk_dm(IMXRT1050_CLK_LCDIF, - imx_clk_gate2("lcdif", "lcdif_podf", base + 0x74, 10)); + clk_dm(IMXRT1050_CLK_LCDIF_APB, + imx_clk_gate2("lcdif", "lcdif_podf", base + 0x70, 28)); + clk_dm(IMXRT1050_CLK_LCDIF_PIX, + imx_clk_gate2("lcdif_pix", "lcdif", base + 0x74, 10)); struct clk *clk, *clk1; diff --git a/include/dt-bindings/clock/imxrt1050-clock.h b/include/dt-bindings/clock/imxrt1050-clock.h index c174f90c1a..09b65e5df2 100644 --- a/include/dt-bindings/clock/imxrt1050-clock.h +++ b/include/dt-bindings/clock/imxrt1050-clock.h @@ -52,7 +52,7 @@ #define IMXRT1050_CLK_USDHC2 43 #define IMXRT1050_CLK_LPUART1 44 #define IMXRT1050_CLK_SEMC 45 -#define IMXRT1050_CLK_LCDIF 46 +#define IMXRT1050_CLK_LCDIF_APB 46 #define IMXRT1050_CLK_PLL1_ARM 47 #define IMXRT1050_CLK_PLL2_SYS 48 #define IMXRT1050_CLK_PLL3_USB_OTG 49 @@ -60,6 +60,7 @@ #define IMXRT1050_CLK_PLL5_VIDEO 51 #define IMXRT1050_CLK_PLL6_ENET 52 #define IMXRT1050_CLK_PLL7_USB_HOST 53 -#define IMXRT1050_CLK_END 54 +#define IMXRT1050_CLK_LCDIF_PIX 54 +#define IMXRT1050_CLK_END 55 #endif /* __DT_BINDINGS_CLOCK_IMXRT1050_H */ -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 4/5] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti ` (2 preceding siblings ...) 2021-04-12 23:03 ` [PATCH 3/5] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti @ 2021-04-12 23:03 ` Giulio Benetti 2021-04-12 23:03 ` [PATCH 5/5] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti 2021-04-12 23:05 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 5 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:03 UTC (permalink / raw) To: u-boot Since we assume pll5 is the default lcdif clock source let's move assigned-clocks(-parents) properties to .dtsi file. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk.dts | 3 --- arch/arm/dts/imxrt1050.dtsi | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index 2052d4eb4e..dc66fc9c37 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -238,9 +238,6 @@ display = <&display0>; status = "okay"; - assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>; - assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>; - display0: display0 { bits-per-pixel = <16>; bus-width = <16>; diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index 6f9da3fe8a..eb5e09e971 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -152,6 +152,8 @@ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMXRT1050_CLK_LCDIF>; clock-names = "per"; + assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>; + assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>; status = "disabled"; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 5/5] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti ` (3 preceding siblings ...) 2021-04-12 23:03 ` [PATCH 4/5] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti @ 2021-04-12 23:03 ` Giulio Benetti 2021-04-12 23:05 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 5 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:03 UTC (permalink / raw) To: u-boot Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index eb5e09e971..ec1eb88e45 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -150,8 +150,9 @@ compatible = "fsl,imxrt-lcdif"; reg = <0x402b8000 0x4000>; interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMXRT1050_CLK_LCDIF>; - clock-names = "per"; + clocks = <&clks IMXRT1050_CLK_LCDIF_PIX>, + <&clks IMXRT1050_CLK_LCDIF_APB>; + clock-names = "pix", "axi"; assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>; assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>; status = "disabled"; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti ` (4 preceding siblings ...) 2021-04-12 23:03 ` [PATCH 5/5] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti @ 2021-04-12 23:05 ` Giulio Benetti 2021-05-01 23:44 ` Giulio Benetti 5 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-04-12 23:05 UTC (permalink / raw) To: u-boot On 4/13/21 1:03 AM, Giulio Benetti wrote: > This patchset fixes u-boot hang on i.MXRT1050 while setting lcdif in mxsfb > driver. There are 2 gates to be enabled to initialize mxsfb so let's > introduce the missing gate as a clock and rename "per" clock to "pix" clock > since in the other .dts files using *-lcdif "pix" is used. > > This patchset add also "disp_axi" clock enabling in mxsfb that should make > able to every i.MX SoC with lcdif using DT. I didn't test it other than > i.MXRT1050 since I don't have the boards. If someone can test it it would > be great. Note that i.MX23/28 should fail using DT instead because they > don't specify any clock-names in their dts. I've forgotten to specify that this patchset depends on this patchset: https://patchwork.ozlabs.org/project/uboot/list/?series=237909 Best regards -- Giulio Benetti Benetti Engineering sas > Giulio Benetti (5): > video: mxsfb: add enabling of "axi" clock other than "per" clock > video: mxsfb: add enabling of "disp_axi" clock > clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to > LCDIF_APB > ARM: dts: imxrt1050: move lcdif assigned clock to dtsi > ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver > > arch/arm/dts/imxrt1050-evk.dts | 3 -- > arch/arm/dts/imxrt1050.dtsi | 7 ++-- > drivers/clk/imx/clk-imxrt1050.c | 6 ++-- > drivers/video/mxsfb.c | 36 +++++++++++++++++---- > include/dt-bindings/clock/imxrt1050-clock.h | 5 +-- > 5 files changed, 41 insertions(+), 16 deletions(-) > ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb 2021-04-12 23:05 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti @ 2021-05-01 23:44 ` Giulio Benetti 2021-05-12 22:12 ` Giulio Benetti 0 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-01 23:44 UTC (permalink / raw) To: u-boot On 4/13/21 1:05 AM, Giulio Benetti wrote: > On 4/13/21 1:03 AM, Giulio Benetti wrote: >> This patchset fixes u-boot hang on i.MXRT1050 while setting lcdif in mxsfb >> driver. There are 2 gates to be enabled to initialize mxsfb so let's >> introduce the missing gate as a clock and rename "per" clock to "pix" clock >> since in the other .dts files using *-lcdif "pix" is used. >> >> This patchset add also "disp_axi" clock enabling in mxsfb that should make >> able to every i.MX SoC with lcdif using DT. I didn't test it other than >> i.MXRT1050 since I don't have the boards. If someone can test it it would >> be great. Note that i.MX23/28 should fail using DT instead because they >> don't specify any clock-names in their dts. > > I've forgotten to specify that this patchset depends on this patchset: > https://patchwork.ozlabs.org/project/uboot/list/?series=237909 This ^^^ series is superseeded by v2: https://patchwork.ozlabs.org/project/uboot/list/?series=241701 Best regards -- Giulio Benetti Benetti Engineering sas ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb 2021-05-01 23:44 ` Giulio Benetti @ 2021-05-12 22:12 ` Giulio Benetti 2021-05-13 8:14 ` Stefano Babic 0 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-12 22:12 UTC (permalink / raw) To: u-boot Hi Stefano, On 5/2/21 1:44 AM, Giulio Benetti wrote: > On 4/13/21 1:05 AM, Giulio Benetti wrote: >> On 4/13/21 1:03 AM, Giulio Benetti wrote: >>> This patchset fixes u-boot hang on i.MXRT1050 while setting lcdif in mxsfb >>> driver. There are 2 gates to be enabled to initialize mxsfb so let's >>> introduce the missing gate as a clock and rename "per" clock to "pix" clock >>> since in the other .dts files using *-lcdif "pix" is used. >>> >>> This patchset add also "disp_axi" clock enabling in mxsfb that should make >>> able to every i.MX SoC with lcdif using DT. I didn't test it other than >>> i.MXRT1050 since I don't have the boards. If someone can test it it would >>> be great. Note that i.MX23/28 should fail using DT instead because they >>> don't specify any clock-names in their dts. >> >> I've forgotten to specify that this patchset depends on this patchset: >> https://patchwork.ozlabs.org/project/uboot/list/?series=237909 > > This ^^^ series is superseeded by v2: > https://patchwork.ozlabs.org/project/uboot/list/?series=241701 Current patchset is not superseeded, only the one which depends to is superseeded by v2. Do you prefer me to send a unique patchset with all patches of both patchsets? Kind regards -- Giulio Benetti Benetti Engineering sas ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb 2021-05-12 22:12 ` Giulio Benetti @ 2021-05-13 8:14 ` Stefano Babic 2021-05-13 9:09 ` [PATCH v3 00/22] Fix i.MXRT1020/50 Giulio Benetti ` (3 more replies) 0 siblings, 4 replies; 59+ messages in thread From: Stefano Babic @ 2021-05-13 8:14 UTC (permalink / raw) To: u-boot Hi Giulio, On 13.05.21 00:12, Giulio Benetti wrote: > Hi Stefano, > > On 5/2/21 1:44 AM, Giulio Benetti wrote: >> On 4/13/21 1:05 AM, Giulio Benetti wrote: >>> On 4/13/21 1:03 AM, Giulio Benetti wrote: >>>> This patchset fixes u-boot hang on i.MXRT1050 while setting lcdif in >>>> mxsfb >>>> driver. There are 2 gates to be enabled to initialize mxsfb so let's >>>> introduce the missing gate as a clock and rename "per" clock to >>>> "pix" clock >>>> since in the other .dts files using *-lcdif "pix" is used. >>>> >>>> This patchset add also "disp_axi" clock enabling in mxsfb that >>>> should make >>>> able to every i.MX SoC with lcdif using DT. I didn't test it other than >>>> i.MXRT1050 since I don't have the boards. If someone can test it it >>>> would >>>> be great. Note that i.MX23/28 should fail using DT instead because they >>>> don't specify any clock-names in their dts. >>> >>> I've forgotten to specify that this patchset depends on this patchset: >>> https://patchwork.ozlabs.org/project/uboot/list/?series=237909 >> >> This ^^^ series is superseeded by v2: >> https://patchwork.ozlabs.org/project/uboot/list/?series=241701 > > Current patchset is not superseeded, only the one which depends to is > superseeded by v2. Do you prefer me to send a unique patchset with all > patches of both patchsets? Yes, or in patchset becomes a mess. Please send a complete series, thanks ! Best regards, Stefano -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 00/22] Fix i.MXRT1020/50 2021-05-13 8:14 ` Stefano Babic @ 2021-05-13 9:09 ` Giulio Benetti 2021-05-13 10:18 ` Giulio Benetti ` (2 subsequent siblings) 3 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 9:09 UTC (permalink / raw) To: u-boot This patchset adds imx-gpt-timer driver that is supported by i.MXRT and also a lot of other i.MX* SoCs. This driver is needed for i.MXRT SoC family that is lacking at the moment the timer at all and that makes u-boot to fail running on i.MXRT. There are also some fixes in imxrt10*0-evk.dts and other minor fixed and improvements and specifically on imxrt1050 has been fixed lcdif init hang. --- V1->V2: * fixed 32 to 64 bit conversion on timer as suggested by Sean Anderson V2->V3: * merge with patchset with https://patchwork.ozlabs.org/project/uboot/list/?series=238842&state=* that fixes lcdif init hang * improve some commit log --- Giulio Benetti (22): arm: imxrt: soc: make mpu regions generic timer: imx-gpt: Add timer support for i.MX SoCs family ARM: dts: imxrt1020: add node label to osc ARM: dts: imxrt1020: add gpt1 node ARM: dts: imxrt1020-evk: enable gpt1 timer ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node configs: imxrt1020-evk: enable imx gpt timer as tick-timer ARM: dts: imxrt1050: add node label to osc ARM: dts: imxrt1050: add gpt1 node ARM: dts: imxrt1050-evk: enable gpt1 timer ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node configs: imxrt1050-evk: enable imx gpt timer as tick-timer video: mxsfb: add enabling of "axi" clock other than "per" clock video: mxsfb: add enabling of "disp_axi" clock clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB ARM: dts: imxrt1050: move lcdif assigned clock to dtsi ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver ARM: dts: imxrt1050-evk: remove u-boot,dm-spl arch/arm/dts/imxrt1020-evk-u-boot.dtsi | 4 + arch/arm/dts/imxrt1020-evk.dts | 6 + arch/arm/dts/imxrt1020.dtsi | 10 +- arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 4 + arch/arm/dts/imxrt1050-evk.dts | 10 +- arch/arm/dts/imxrt1050.dtsi | 17 +- arch/arm/mach-imx/imxrt/soc.c | 6 +- configs/imxrt1020-evk_defconfig | 1 + configs/imxrt1050-evk_defconfig | 1 + drivers/clk/imx/clk-imxrt1050.c | 6 +- drivers/timer/Kconfig | 7 + drivers/timer/Makefile | 1 + drivers/timer/imx-gpt-timer.c | 162 ++++++++++++++++++++ drivers/video/mxsfb.c | 36 ++++- include/dt-bindings/clock/imxrt1050-clock.h | 5 +- 15 files changed, 254 insertions(+), 22 deletions(-) create mode 100644 drivers/timer/imx-gpt-timer.c -- 2.25.1 ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 00/22] Fix i.MXRT1020/50 2021-05-13 8:14 ` Stefano Babic 2021-05-13 9:09 ` [PATCH v3 00/22] Fix i.MXRT1020/50 Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-05-13 10:18 ` [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic Giulio Benetti ` (17 more replies) 2021-05-13 10:19 ` Giulio Benetti 2021-05-13 10:26 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 3 siblings, 18 replies; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot This patchset adds imx-gpt-timer driver that is supported by i.MXRT and also a lot of other i.MX* SoCs. This driver is needed for i.MXRT SoC family that is lacking at the moment the timer at all and that makes u-boot to fail running on i.MXRT. There are also some fixes in imxrt10*0-evk.dts and other minor fixed and improvements and specifically on imxrt1050 has been fixed lcdif init hang. --- V1->V2: * fixed 32 to 64 bit conversion on timer as suggested by Sean Anderson V2->V3: * merge with patchset with https://patchwork.ozlabs.org/project/uboot/list/?series=238842&state=* that fixes lcdif init hang * improve some commit log --- Giulio Benetti (22): arm: imxrt: soc: make mpu regions generic timer: imx-gpt: Add timer support for i.MX SoCs family ARM: dts: imxrt1020: add node label to osc ARM: dts: imxrt1020: add gpt1 node ARM: dts: imxrt1020-evk: enable gpt1 timer ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node configs: imxrt1020-evk: enable imx gpt timer as tick-timer ARM: dts: imxrt1050: add node label to osc ARM: dts: imxrt1050: add gpt1 node ARM: dts: imxrt1050-evk: enable gpt1 timer ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node configs: imxrt1050-evk: enable imx gpt timer as tick-timer video: mxsfb: add enabling of "axi" clock other than "per" clock video: mxsfb: add enabling of "disp_axi" clock clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB ARM: dts: imxrt1050: move lcdif assigned clock to dtsi ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver ARM: dts: imxrt1050-evk: remove u-boot,dm-spl arch/arm/dts/imxrt1020-evk-u-boot.dtsi | 4 + arch/arm/dts/imxrt1020-evk.dts | 6 + arch/arm/dts/imxrt1020.dtsi | 10 +- arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 4 + arch/arm/dts/imxrt1050-evk.dts | 10 +- arch/arm/dts/imxrt1050.dtsi | 17 +- arch/arm/mach-imx/imxrt/soc.c | 6 +- configs/imxrt1020-evk_defconfig | 1 + configs/imxrt1050-evk_defconfig | 1 + drivers/clk/imx/clk-imxrt1050.c | 6 +- drivers/timer/Kconfig | 7 + drivers/timer/Makefile | 1 + drivers/timer/imx-gpt-timer.c | 162 ++++++++++++++++++++ drivers/video/mxsfb.c | 36 ++++- include/dt-bindings/clock/imxrt1050-clock.h | 5 +- 15 files changed, 254 insertions(+), 22 deletions(-) create mode 100644 drivers/timer/imx-gpt-timer.c -- 2.25.1 ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic 2021-05-13 10:18 ` Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 02/22] timer: imx-gpt: Add timer support for i.MX SoCs family Giulio Benetti ` (16 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot This mpu handling works for every i.MXRT SoC that we have, so let's generalize imxrt1050_region_config to imxrt_region_config. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/mach-imx/imxrt/soc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-imx/imxrt/soc.c b/arch/arm/mach-imx/imxrt/soc.c index 8e7d15160d..c533f3554a 100644 --- a/arch/arm/mach-imx/imxrt/soc.c +++ b/arch/arm/mach-imx/imxrt/soc.c @@ -14,7 +14,7 @@ int arch_cpu_init(void) { int i; - struct mpu_region_config imxrt1050_region_config[] = { + struct mpu_region_config imxrt_region_config[] = { { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW, STRONG_ORDER, REGION_4GB }, { PHYS_SDRAM, REGION_1, XN_DIS, PRIV_RW_USR_RW, @@ -29,8 +29,8 @@ int arch_cpu_init(void) * the whole 4GB address space. */ disable_mpu(); - for (i = 0; i < ARRAY_SIZE(imxrt1050_region_config); i++) - mpu_config(&imxrt1050_region_config[i]); + for (i = 0; i < ARRAY_SIZE(imxrt_region_config); i++) + mpu_config(&imxrt_region_config[i]); enable_mpu(); return 0; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic 2021-05-13 10:18 ` [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > This mpu handling works for every i.MXRT SoC that we have, so let's > generalize imxrt1050_region_config to imxrt_region_config. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 02/22] timer: imx-gpt: Add timer support for i.MX SoCs family 2021-05-13 10:18 ` Giulio Benetti 2021-05-13 10:18 ` [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 03/22] ARM: dts: imxrt1020: add node label to osc Giulio Benetti ` (15 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot This timer driver uses GPT Timer (General Purpose Timer) available on a lot of i.MX SoCs family. This driver deals with both 24Mhz oscillator as well as peripheral clock. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> [Giulio: added the driver's stub and handled peripheral clock prescaler setting making driver to work correctly] Signed-off-by: Jesse Taube <mr.bossman075@gmail.com> [Jesse: added init, setting prescaler for 24Mhz support and enabling timer] --- drivers/timer/Kconfig | 7 ++ drivers/timer/Makefile | 1 + drivers/timer/imx-gpt-timer.c | 162 ++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+) create mode 100644 drivers/timer/imx-gpt-timer.c diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig index 80743a2551..ee81dfa776 100644 --- a/drivers/timer/Kconfig +++ b/drivers/timer/Kconfig @@ -227,4 +227,11 @@ config MCHP_PIT64B_TIMER Select this to enable support for Microchip 64-bit periodic interval timer. +config IMX_GPT_TIMER + bool "NXP i.MX GPT timer support" + depends on TIMER + help + Select this to enable support for the timer found on + NXP i.MX devices. + endmenu diff --git a/drivers/timer/Makefile b/drivers/timer/Makefile index eb5c48cc6c..e214ba7268 100644 --- a/drivers/timer/Makefile +++ b/drivers/timer/Makefile @@ -25,3 +25,4 @@ obj-$(CONFIG_STM32_TIMER) += stm32_timer.o obj-$(CONFIG_X86_TSC_TIMER) += tsc_timer.o obj-$(CONFIG_MTK_TIMER) += mtk_timer.o obj-$(CONFIG_MCHP_PIT64B_TIMER) += mchp-pit64b-timer.o +obj-$(CONFIG_IMX_GPT_TIMER) += imx-gpt-timer.o diff --git a/drivers/timer/imx-gpt-timer.c b/drivers/timer/imx-gpt-timer.c new file mode 100644 index 0000000000..72be297754 --- /dev/null +++ b/drivers/timer/imx-gpt-timer.c @@ -0,0 +1,162 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2021 + * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com> + */ + +#include <common.h> +#include <clk.h> +#include <dm.h> +#include <fdtdec.h> +#include <timer.h> +#include <dm/device_compat.h> + +#include <asm/io.h> + +#define GPT_CR_EN BIT(0) +#define GPT_CR_FRR BIT(9) +#define GPT_CR_EN_24M BIT(10) +#define GPT_CR_SWR BIT(15) + +#define GPT_PR_PRESCALER24M_MASK 0x0000F000 +#define GPT_PR_PRESCALER24M_SHIFT 12 +#define GPT_PR_PRESCALER24M_MAX (GPT_PR_PRESCALER24M_MASK >> GPT_PR_PRESCALER24M_SHIFT) +#define GPT_PR_PRESCALER_MASK 0x00000FFF +#define GPT_PR_PRESCALER_SHIFT 0 +#define GPT_PR_PRESCALER_MAX (GPT_PR_PRESCALER_MASK >> GPT_PR_PRESCALER_SHIFT) + +#define GPT_CLKSRC_IPG_CLK (1 << 6) +#define GPT_CLKSRC_IPG_CLK_24M (5 << 6) + +/* If CONFIG_SYS_HZ_CLOCK not specified et's default to 3Mhz */ +#ifndef CONFIG_SYS_HZ_CLOCK +#define CONFIG_SYS_HZ_CLOCK 3000000 +#endif + +struct imx_gpt_timer_regs { + u32 cr; + u32 pr; + u32 sr; + u32 ir; + u32 ocr1; + u32 ocr2; + u32 ocr3; + u32 icr1; + u32 icr2; + u32 cnt; +}; + +struct imx_gpt_timer_priv { + struct imx_gpt_timer_regs *base; +}; + +static u64 imx_gpt_timer_get_count(struct udevice *dev) +{ + struct imx_gpt_timer_priv *priv = dev_get_priv(dev); + struct imx_gpt_timer_regs *regs = priv->base; + + return timer_conv_64(readl(®s->cnt)); +} + +static int imx_gpt_setup(struct imx_gpt_timer_regs *regs, u32 rate) +{ + u32 prescaler = (rate / CONFIG_SYS_HZ_CLOCK) - 1; + + /* Reset the timer */ + setbits_le32(®s->cr, GPT_CR_SWR); + + /* Wait for timer to finish reset */ + while (readl(®s->cr) & GPT_CR_SWR) + ; + + if (rate == 24000000UL) { + /* Set timer frequency if using 24M clock source */ + if (prescaler > GPT_PR_PRESCALER24M_MAX) + return -EINVAL; + + /* Set 24M prescaler */ + writel((prescaler << GPT_PR_PRESCALER24M_SHIFT), ®s->pr); + /* Set Oscillator as clock source, enable 24M input and set gpt + * in free-running mode + */ + writel(GPT_CLKSRC_IPG_CLK_24M | GPT_CR_EN_24M | GPT_CR_FRR, ®s->cr); + } else { + if (prescaler > GPT_PR_PRESCALER_MAX) + return -EINVAL; + + /* Set prescaler */ + writel((prescaler << GPT_PR_PRESCALER_SHIFT), ®s->pr); + /* Set Peripheral as clock source and set gpt in free-running + * mode + */ + writel(GPT_CLKSRC_IPG_CLK | GPT_CR_FRR, ®s->cr); + } + + /* Start timer */ + setbits_le32(®s->cr, GPT_CR_EN); + + return 0; +} + +static int imx_gpt_timer_probe(struct udevice *dev) +{ + struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev); + struct imx_gpt_timer_priv *priv = dev_get_priv(dev); + struct imx_gpt_timer_regs *regs; + struct clk clk; + fdt_addr_t addr; + u32 clk_rate; + int ret; + + addr = dev_read_addr(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + + priv->base = (struct imx_gpt_timer_regs *)addr; + regs = priv->base; + + ret = clk_get_by_index(dev, 0, &clk); + if (ret < 0) + return ret; + + ret = clk_enable(&clk); + if (ret) { + dev_err(dev, "Failed to enable clock\n"); + return ret; + } + + /* Get timer clock rate */ + clk_rate = clk_get_rate(&clk); + if (clk_rate <= 0) { + dev_err(dev, "Could not get clock rate...\n"); + return -EINVAL; + } + + ret = imx_gpt_setup(regs, clk_rate); + if (ret) { + dev_err(dev, "Could not setup timer\n"); + return ret; + } + + uc_priv->clock_rate = CONFIG_SYS_HZ_CLOCK; + + return 0; +} + +static const struct timer_ops imx_gpt_timer_ops = { + .get_count = imx_gpt_timer_get_count, +}; + +static const struct udevice_id imx_gpt_timer_ids[] = { + { .compatible = "fsl,imxrt-gpt" }, + {} +}; + +U_BOOT_DRIVER(imx_gpt_timer) = { + .name = "imx_gpt_timer", + .id = UCLASS_TIMER, + .of_match = imx_gpt_timer_ids, + .priv_auto = sizeof(struct imx_gpt_timer_priv), + .probe = imx_gpt_timer_probe, + .ops = &imx_gpt_timer_ops, +}; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 02/22] timer: imx-gpt: Add timer support for i.MX SoCs family 2021-05-13 10:18 ` [PATCH v3 02/22] timer: imx-gpt: Add timer support for i.MX SoCs family Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > This timer driver uses GPT Timer (General Purpose Timer) available on > a lot of i.MX SoCs family. This driver deals with both 24Mhz oscillator > as well as peripheral clock. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> > [Giulio: added the driver's stub and handled peripheral clock prescaler > setting making driver to work correctly] > Signed-off-by: Jesse Taube <mr.bossman075@gmail.com> > [Jesse: added init, setting prescaler for 24Mhz support and enabling > timer] Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 03/22] ARM: dts: imxrt1020: add node label to osc 2021-05-13 10:18 ` Giulio Benetti 2021-05-13 10:18 ` [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic Giulio Benetti 2021-05-13 10:18 ` [PATCH v3 02/22] timer: imx-gpt: Add timer support for i.MX SoCs family Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 04/22] ARM: dts: imxrt1020: add gpt1 node Giulio Benetti ` (14 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Let's add node label to osc to be used as clock source for other nodes. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1020.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/dts/imxrt1020.dtsi b/arch/arm/dts/imxrt1020.dtsi index 97f3cec9f3..0a3a3b451a 100644 --- a/arch/arm/dts/imxrt1020.dtsi +++ b/arch/arm/dts/imxrt1020.dtsi @@ -36,7 +36,7 @@ clock-frequency = <0>; }; - osc { + osc: osc { u-boot,dm-spl; compatible = "fsl,imx-osc", "fixed-clock"; #clock-cells = <0>; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 03/22] ARM: dts: imxrt1020: add node label to osc 2021-05-13 10:18 ` [PATCH v3 03/22] ARM: dts: imxrt1020: add node label to osc Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Let's add node label to osc to be used as clock source for other nodes. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 04/22] ARM: dts: imxrt1020: add gpt1 node 2021-05-13 10:18 ` Giulio Benetti ` (2 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 03/22] ARM: dts: imxrt1020: add node label to osc Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 05/22] ARM: dts: imxrt1020-evk: enable gpt1 timer Giulio Benetti ` (13 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Add gpt1 node for using it as timer. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1020.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/dts/imxrt1020.dtsi b/arch/arm/dts/imxrt1020.dtsi index 0a3a3b451a..cab608c644 100644 --- a/arch/arm/dts/imxrt1020.dtsi +++ b/arch/arm/dts/imxrt1020.dtsi @@ -129,5 +129,13 @@ interrupt-controller; #interrupt-cells = <2>; }; + + gpt1: gpt1 at 401ec000 { + compatible = "fsl,imxrt-gpt"; + reg = <0x401ec000 0x4000>; + interrupts = <100>; + clocks = <&osc>; + status = "disabled"; + }; }; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 04/22] ARM: dts: imxrt1020: add gpt1 node 2021-05-13 10:18 ` [PATCH v3 04/22] ARM: dts: imxrt1020: add gpt1 node Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Add gpt1 node for using it as timer. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 05/22] ARM: dts: imxrt1020-evk: enable gpt1 timer 2021-05-13 10:18 ` Giulio Benetti ` (3 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 04/22] ARM: dts: imxrt1020: add gpt1 node Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 06/22] ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot Giulio Benetti ` (12 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Enable gpt1 timer. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1020-evk.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/imxrt1020-evk.dts b/arch/arm/dts/imxrt1020-evk.dts index ece13601bd..a471ff3838 100644 --- a/arch/arm/dts/imxrt1020-evk.dts +++ b/arch/arm/dts/imxrt1020-evk.dts @@ -186,6 +186,10 @@ }; }; +&gpt1 { + status = "okay"; +}; + &usdhc1 { pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; pinctrl-0 = <&pinctrl_usdhc0>; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 05/22] ARM: dts: imxrt1020-evk: enable gpt1 timer 2021-05-13 10:18 ` [PATCH v3 05/22] ARM: dts: imxrt1020-evk: enable gpt1 timer Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Enable gpt1 timer. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 06/22] ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot 2021-05-13 10:18 ` Giulio Benetti ` (4 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 05/22] ARM: dts: imxrt1020-evk: enable gpt1 timer Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 07/22] ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL Giulio Benetti ` (11 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Let's set gpt1 as u-boot timer. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1020-evk.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/dts/imxrt1020-evk.dts b/arch/arm/dts/imxrt1020-evk.dts index a471ff3838..b527206fcf 100644 --- a/arch/arm/dts/imxrt1020-evk.dts +++ b/arch/arm/dts/imxrt1020-evk.dts @@ -16,6 +16,7 @@ chosen { bootargs = "root=/dev/ram"; stdout-path = "serial0:115200n8"; + tick-timer = &gpt1; }; memory { -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 06/22] ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot 2021-05-13 10:18 ` [PATCH v3 06/22] ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot Giulio Benetti @ 2021-06-09 13:42 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:42 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Let's set gpt1 as u-boot timer. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 07/22] ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL 2021-05-13 10:18 ` Giulio Benetti ` (5 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 06/22] ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 08/22] ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node Giulio Benetti ` (10 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Timer needs to be already enabled in spl, so let's add its node to spl dtb. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1020-evk-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/imxrt1020-evk-u-boot.dtsi b/arch/arm/dts/imxrt1020-evk-u-boot.dtsi index d32c98de9c..34d19e06c5 100644 --- a/arch/arm/dts/imxrt1020-evk-u-boot.dtsi +++ b/arch/arm/dts/imxrt1020-evk-u-boot.dtsi @@ -10,6 +10,10 @@ }; }; +&gpt1 { + u-boot,dm-spl; +}; + &lpuart1 { /* console */ u-boot,dm-spl; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 07/22] ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL 2021-05-13 10:18 ` [PATCH v3 07/22] ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL Giulio Benetti @ 2021-06-09 13:42 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:42 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Timer needs to be already enabled in spl, so let's add its node to spl dtb. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 08/22] ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node 2021-05-13 10:18 ` Giulio Benetti ` (6 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 07/22] ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 09/22] configs: imxrt1020-evk: enable imx gpt timer as tick-timer Giulio Benetti ` (9 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Now device_type = "memory" is mandatory to allow u-boot to read memory node, so let's add it to memory node. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1020-evk.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/dts/imxrt1020-evk.dts b/arch/arm/dts/imxrt1020-evk.dts index b527206fcf..2da79e5c20 100644 --- a/arch/arm/dts/imxrt1020-evk.dts +++ b/arch/arm/dts/imxrt1020-evk.dts @@ -20,6 +20,7 @@ }; memory { + device_type = "memory"; reg = <0x80000000 0x2000000>; }; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 08/22] ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node 2021-05-13 10:18 ` [PATCH v3 08/22] ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Now device_type = "memory" is mandatory to allow u-boot to read memory > node, so let's add it to memory node. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 09/22] configs: imxrt1020-evk: enable imx gpt timer as tick-timer 2021-05-13 10:18 ` Giulio Benetti ` (7 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 08/22] ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 10/22] ARM: dts: imxrt1050: add node label to osc Giulio Benetti ` (8 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Let's enable imx-gpt-timer in imx1020-evk defconfig. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- configs/imxrt1020-evk_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/imxrt1020-evk_defconfig b/configs/imxrt1020-evk_defconfig index ad408ebef8..f0b05b7165 100644 --- a/configs/imxrt1020-evk_defconfig +++ b/configs/imxrt1020-evk_defconfig @@ -61,6 +61,7 @@ CONFIG_IMXRT_SDRAM=y CONFIG_FSL_LPUART=y CONFIG_TIMER=y CONFIG_SPL_TIMER=y +CONFIG_IMX_GPT_TIMER=y CONFIG_SHA1=y CONFIG_SHA256=y CONFIG_HEXDUMP=y -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 09/22] configs: imxrt1020-evk: enable imx gpt timer as tick-timer 2021-05-13 10:18 ` [PATCH v3 09/22] configs: imxrt1020-evk: enable imx gpt timer as tick-timer Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Let's enable imx-gpt-timer in imx1020-evk defconfig. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 10/22] ARM: dts: imxrt1050: add node label to osc 2021-05-13 10:18 ` Giulio Benetti ` (8 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 09/22] configs: imxrt1020-evk: enable imx gpt timer as tick-timer Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 11/22] ARM: dts: imxrt1050: add gpt1 node Giulio Benetti ` (7 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Let's add node label to osc to be used as clock source for other nodes. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index a9281001e5..b7cc3fbc2a 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -28,7 +28,7 @@ clocks { u-boot,dm-spl; - osc { + osc: osc { u-boot,dm-spl; compatible = "fsl,imx-osc", "fixed-clock"; #clock-cells = <0>; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 10/22] ARM: dts: imxrt1050: add node label to osc 2021-05-13 10:18 ` [PATCH v3 10/22] ARM: dts: imxrt1050: add node label to osc Giulio Benetti @ 2021-06-09 13:42 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:42 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Let's add node label to osc to be used as clock source for other nodes. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 11/22] ARM: dts: imxrt1050: add gpt1 node 2021-05-13 10:18 ` Giulio Benetti ` (9 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 10/22] ARM: dts: imxrt1050: add node label to osc Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 12/22] ARM: dts: imxrt1050-evk: enable gpt1 timer Giulio Benetti ` (6 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Add gpt1 node for using it as timer. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index b7cc3fbc2a..6f9da3fe8a 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -154,5 +154,13 @@ clock-names = "per"; status = "disabled"; }; + + gpt1: gpt1 at 401ec000 { + compatible = "fsl,imxrt-gpt"; + reg = <0x401ec000 0x4000>; + interrupts = <100>; + clocks = <&osc>; + status = "disabled"; + }; }; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 11/22] ARM: dts: imxrt1050: add gpt1 node 2021-05-13 10:18 ` [PATCH v3 11/22] ARM: dts: imxrt1050: add gpt1 node Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Add gpt1 node for using it as timer. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 12/22] ARM: dts: imxrt1050-evk: enable gpt1 timer 2021-05-13 10:18 ` Giulio Benetti ` (10 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 11/22] ARM: dts: imxrt1050: add gpt1 node Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 13/22] ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot Giulio Benetti ` (5 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Enable gpt1 timer. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index b5e781275e..e592330332 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -215,6 +215,10 @@ }; }; +&gpt1 { + status = "okay"; +}; + &usdhc1 { pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; pinctrl-0 = <&pinctrl_usdhc0>; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 12/22] ARM: dts: imxrt1050-evk: enable gpt1 timer 2021-05-13 10:18 ` [PATCH v3 12/22] ARM: dts: imxrt1050-evk: enable gpt1 timer Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Enable gpt1 timer. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 13/22] ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot 2021-05-13 10:18 ` Giulio Benetti ` (11 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 12/22] ARM: dts: imxrt1050-evk: enable gpt1 timer Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 14/22] ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL Giulio Benetti ` (4 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Let's set gpt1 as u-boot timer. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index e592330332..6d21f2b738 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -16,6 +16,7 @@ chosen { bootargs = "root=/dev/ram"; stdout-path = "serial0:115200n8"; + tick-timer = &gpt1; }; memory { -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 13/22] ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot 2021-05-13 10:18 ` [PATCH v3 13/22] ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Let's set gpt1 as u-boot timer. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 14/22] ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL 2021-05-13 10:18 ` Giulio Benetti ` (12 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 13/22] ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 15/22] ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node Giulio Benetti ` (3 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Timer needs to be already enabled in spl, so let's add its node to spl dtb. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/imxrt1050-evk-u-boot.dtsi b/arch/arm/dts/imxrt1050-evk-u-boot.dtsi index fb4f7f6f9d..a4b50f0bb2 100644 --- a/arch/arm/dts/imxrt1050-evk-u-boot.dtsi +++ b/arch/arm/dts/imxrt1050-evk-u-boot.dtsi @@ -10,6 +10,10 @@ }; }; +&gpt1 { + u-boot,dm-spl; +}; + &lpuart1 { /* console */ u-boot,dm-spl; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 14/22] ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL 2021-05-13 10:18 ` [PATCH v3 14/22] ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Timer needs to be already enabled in spl, so let's add its node to spl dtb. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 15/22] ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node 2021-05-13 10:18 ` Giulio Benetti ` (13 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 14/22] ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 16/22] configs: imxrt1050-evk: enable imx gpt timer as tick-timer Giulio Benetti ` (2 subsequent siblings) 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Now device_type = "memory" is mandatory to allow u-boot to read memory node, so let's add it to memory node. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index 6d21f2b738..2052d4eb4e 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -20,6 +20,7 @@ }; memory { + device_type = "memory"; reg = <0x80000000 0x2000000>; }; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 15/22] ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node 2021-05-13 10:18 ` [PATCH v3 15/22] ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node Giulio Benetti @ 2021-06-09 13:42 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:42 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Now device_type = "memory" is mandatory to allow u-boot to read memory > node, so let's add it to memory node. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 16/22] configs: imxrt1050-evk: enable imx gpt timer as tick-timer 2021-05-13 10:18 ` Giulio Benetti ` (14 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 15/22] ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 17/22] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti 2021-05-13 10:18 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Let's enable imx-gpt-timer in imx1050-evk defconfig. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- configs/imxrt1050-evk_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/imxrt1050-evk_defconfig b/configs/imxrt1050-evk_defconfig index d03572e7db..9c8bdb07dc 100644 --- a/configs/imxrt1050-evk_defconfig +++ b/configs/imxrt1050-evk_defconfig @@ -64,6 +64,7 @@ CONFIG_IMXRT_SDRAM=y CONFIG_FSL_LPUART=y CONFIG_TIMER=y CONFIG_SPL_TIMER=y +CONFIG_IMX_GPT_TIMER=y CONFIG_DM_VIDEO=y CONFIG_BACKLIGHT_GPIO=y CONFIG_SYS_WHITE_ON_BLACK=y -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 16/22] configs: imxrt1050-evk: enable imx gpt timer as tick-timer 2021-05-13 10:18 ` [PATCH v3 16/22] configs: imxrt1050-evk: enable imx gpt timer as tick-timer Giulio Benetti @ 2021-06-09 13:42 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:42 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Let's enable imx-gpt-timer in imx1050-evk defconfig. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 17/22] video: mxsfb: add enabling of "axi" clock other than "per" clock 2021-05-13 10:18 ` Giulio Benetti ` (15 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 16/22] configs: imxrt1050-evk: enable imx gpt timer as tick-timer Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot On some SoC mxsfb needs more than one clock gate(actual "per" clock). So let's introduce "axi" clock that can be provided but it's not mandatory. This is inspired from linux mxsfb driver. Also let's rename "per" clock to "pix" clock for compatibility with already existing .dts lcdif nodes implementation. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/video/mxsfb.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index e1fd36a62d..147bd668fe 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -67,26 +67,37 @@ static void mxs_lcd_init(struct udevice *dev, u32 fb_addr, uint32_t vdctrl0; #if CONFIG_IS_ENABLED(CLK) - struct clk per_clk; + struct clk clk; int ret; - ret = clk_get_by_name(dev, "per", &per_clk); + ret = clk_get_by_name(dev, "pix", &clk); if (ret) { - dev_err(dev, "Failed to get mxs clk: %d\n", ret); + dev_err(dev, "Failed to get mxs pix clk: %d\n", ret); return; } - ret = clk_set_rate(&per_clk, timings->pixelclock.typ); + ret = clk_set_rate(&clk, timings->pixelclock.typ); if (ret < 0) { - dev_err(dev, "Failed to set mxs clk: %d\n", ret); + dev_err(dev, "Failed to set mxs pix clk: %d\n", ret); return; } - ret = clk_enable(&per_clk); + ret = clk_enable(&clk); if (ret < 0) { - dev_err(dev, "Failed to enable mxs clk: %d\n", ret); + dev_err(dev, "Failed to enable mxs pix clk: %d\n", ret); return; } + + ret = clk_get_by_name(dev, "axi", &clk); + if (!ret) { + debug("%s: Failed to get mxs axi clk: %d\n", __func__, ret); + } else { + ret = clk_enable(&clk); + if (ret < 0) { + dev_err(dev, "Failed to enable mxs axi clk: %d\n", ret); + return; + } + } #else /* Kick in the LCDIF clock */ mxs_set_lcdclk(MXS_LCDIF_BASE, timings->pixelclock.typ / 1000); -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 17/22] video: mxsfb: add enabling of "axi" clock other than "per" clock 2021-05-13 10:18 ` [PATCH v3 17/22] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > On some SoC mxsfb needs more than one clock gate(actual "per" clock). So > let's introduce "axi" clock that can be provided but it's not mandatory. > This is inspired from linux mxsfb driver. Also let's rename "per" clock to > "pix" clock for compatibility with already existing .dts lcdif nodes > implementation. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock 2021-05-13 10:18 ` Giulio Benetti ` (16 preceding siblings ...) 2021-05-13 10:18 ` [PATCH v3 17/22] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti @ 2021-05-13 10:18 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 17 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:18 UTC (permalink / raw) To: u-boot Some SoC needs "disp_axi" clock to be enabled, so let's try to retrieve it and enabling. If it fails it gives only a debug(), but this clock as well as "axi" clock is not mandatory. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/video/mxsfb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 147bd668fe..523d8a8d98 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -98,6 +98,17 @@ static void mxs_lcd_init(struct udevice *dev, u32 fb_addr, return; } } + + ret = clk_get_by_name(dev, "disp_axi", &clk); + if (!ret) { + debug("%s: Failed to get mxs disp_axi clk: %d\n", __func__, ret); + } else { + ret = clk_enable(&clk); + if (ret < 0) { + dev_err(dev, "Failed to enable mxs disp_axi clk: %d\n", ret); + return; + } + } #else /* Kick in the LCDIF clock */ mxs_set_lcdclk(MXS_LCDIF_BASE, timings->pixelclock.typ / 1000); -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock 2021-05-13 10:18 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Some SoC needs "disp_axi" clock to be enabled, so let's try to retrieve it > and enabling. If it fails it gives only a debug(), but this clock as well > as "axi" clock is not mandatory. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock 2021-05-13 8:14 ` Stefano Babic 2021-05-13 9:09 ` [PATCH v3 00/22] Fix i.MXRT1020/50 Giulio Benetti 2021-05-13 10:18 ` Giulio Benetti @ 2021-05-13 10:19 ` Giulio Benetti 2021-05-13 10:19 ` [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti ` (4 more replies) 2021-05-13 10:26 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 3 siblings, 5 replies; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:19 UTC (permalink / raw) To: u-boot Some SoC needs "disp_axi" clock to be enabled, so let's try to retrieve it and enabling. If it fails it gives only a debug(), but this clock as well as "axi" clock is not mandatory. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/video/mxsfb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 147bd668fe..523d8a8d98 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -98,6 +98,17 @@ static void mxs_lcd_init(struct udevice *dev, u32 fb_addr, return; } } + + ret = clk_get_by_name(dev, "disp_axi", &clk); + if (!ret) { + debug("%s: Failed to get mxs disp_axi clk: %d\n", __func__, ret); + } else { + ret = clk_enable(&clk); + if (ret < 0) { + dev_err(dev, "Failed to enable mxs disp_axi clk: %d\n", ret); + return; + } + } #else /* Kick in the LCDIF clock */ mxs_set_lcdclk(MXS_LCDIF_BASE, timings->pixelclock.typ / 1000); -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB 2021-05-13 10:19 ` Giulio Benetti @ 2021-05-13 10:19 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:19 ` [PATCH v3 20/22] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti ` (3 subsequent siblings) 4 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:19 UTC (permalink / raw) To: u-boot Lcd peripheral needs 2 different gates to be enable to work, so let's introduce the missing one(LCDIF_PIX) and rename the existing one (LCDIF_APB). Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- drivers/clk/imx/clk-imxrt1050.c | 6 ++++-- include/dt-bindings/clock/imxrt1050-clock.h | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/clk/imx/clk-imxrt1050.c b/drivers/clk/imx/clk-imxrt1050.c index 594093ee5f..eb6847f865 100644 --- a/drivers/clk/imx/clk-imxrt1050.c +++ b/drivers/clk/imx/clk-imxrt1050.c @@ -255,8 +255,10 @@ static int imxrt1050_clk_probe(struct udevice *dev) imx_clk_gate2("lpuart1", "lpuart_podf", base + 0x7c, 24)); clk_dm(IMXRT1050_CLK_SEMC, imx_clk_gate2("semc", "semc_podf", base + 0x74, 4)); - clk_dm(IMXRT1050_CLK_LCDIF, - imx_clk_gate2("lcdif", "lcdif_podf", base + 0x74, 10)); + clk_dm(IMXRT1050_CLK_LCDIF_APB, + imx_clk_gate2("lcdif", "lcdif_podf", base + 0x70, 28)); + clk_dm(IMXRT1050_CLK_LCDIF_PIX, + imx_clk_gate2("lcdif_pix", "lcdif", base + 0x74, 10)); struct clk *clk, *clk1; diff --git a/include/dt-bindings/clock/imxrt1050-clock.h b/include/dt-bindings/clock/imxrt1050-clock.h index c174f90c1a..09b65e5df2 100644 --- a/include/dt-bindings/clock/imxrt1050-clock.h +++ b/include/dt-bindings/clock/imxrt1050-clock.h @@ -52,7 +52,7 @@ #define IMXRT1050_CLK_USDHC2 43 #define IMXRT1050_CLK_LPUART1 44 #define IMXRT1050_CLK_SEMC 45 -#define IMXRT1050_CLK_LCDIF 46 +#define IMXRT1050_CLK_LCDIF_APB 46 #define IMXRT1050_CLK_PLL1_ARM 47 #define IMXRT1050_CLK_PLL2_SYS 48 #define IMXRT1050_CLK_PLL3_USB_OTG 49 @@ -60,6 +60,7 @@ #define IMXRT1050_CLK_PLL5_VIDEO 51 #define IMXRT1050_CLK_PLL6_ENET 52 #define IMXRT1050_CLK_PLL7_USB_HOST 53 -#define IMXRT1050_CLK_END 54 +#define IMXRT1050_CLK_LCDIF_PIX 54 +#define IMXRT1050_CLK_END 55 #endif /* __DT_BINDINGS_CLOCK_IMXRT1050_H */ -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB 2021-05-13 10:19 ` [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Lcd peripheral needs 2 different gates to be enable to work, so let's > introduce the missing one(LCDIF_PIX) and rename the existing one > (LCDIF_APB). > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 20/22] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi 2021-05-13 10:19 ` Giulio Benetti 2021-05-13 10:19 ` [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti @ 2021-05-13 10:19 ` Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:19 ` [PATCH v3 21/22] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti ` (2 subsequent siblings) 4 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:19 UTC (permalink / raw) To: u-boot Since we assume pll5 is the default lcdif clock source let's move assigned-clocks(-parents) properties to .dtsi file. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk.dts | 3 --- arch/arm/dts/imxrt1050.dtsi | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index 2052d4eb4e..dc66fc9c37 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -238,9 +238,6 @@ display = <&display0>; status = "okay"; - assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>; - assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>; - display0: display0 { bits-per-pixel = <16>; bus-width = <16>; diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index 6f9da3fe8a..eb5e09e971 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -152,6 +152,8 @@ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMXRT1050_CLK_LCDIF>; clock-names = "per"; + assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>; + assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>; status = "disabled"; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 20/22] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi 2021-05-13 10:19 ` [PATCH v3 20/22] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti @ 2021-06-09 13:44 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:44 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Since we assume pll5 is the default lcdif clock source let's move > assigned-clocks(-parents) properties to .dtsi file. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 21/22] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver 2021-05-13 10:19 ` Giulio Benetti 2021-05-13 10:19 ` [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti 2021-05-13 10:19 ` [PATCH v3 20/22] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti @ 2021-05-13 10:19 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:19 ` [PATCH v3 22/22] ARM: dts: imxrt1050-evk: remove u-boot,dm-spl Giulio Benetti 2021-05-13 10:21 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 4 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:19 UTC (permalink / raw) To: u-boot Lcdif needs both "pix" and "axi" clocks to be enabled so let's add them to lcdif node. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi index eb5e09e971..ec1eb88e45 100644 --- a/arch/arm/dts/imxrt1050.dtsi +++ b/arch/arm/dts/imxrt1050.dtsi @@ -150,8 +150,9 @@ compatible = "fsl,imxrt-lcdif"; reg = <0x402b8000 0x4000>; interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMXRT1050_CLK_LCDIF>; - clock-names = "per"; + clocks = <&clks IMXRT1050_CLK_LCDIF_PIX>, + <&clks IMXRT1050_CLK_LCDIF_APB>; + clock-names = "pix", "axi"; assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>; assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>; status = "disabled"; -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 21/22] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver 2021-05-13 10:19 ` [PATCH v3 21/22] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > Lcdif needs both "pix" and "axi" clocks to be enabled so let's add them to > lcdif node. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 22/22] ARM: dts: imxrt1050-evk: remove u-boot,dm-spl 2021-05-13 10:19 ` Giulio Benetti ` (2 preceding siblings ...) 2021-05-13 10:19 ` [PATCH v3 21/22] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti @ 2021-05-13 10:19 ` Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:21 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 4 siblings, 1 reply; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:19 UTC (permalink / raw) To: u-boot We don't need lcdif to be enable in SPL, so let's remove u-boot,dm-spl. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- arch/arm/dts/imxrt1050-evk.dts | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts index dc66fc9c37..81db1a446d 100644 --- a/arch/arm/dts/imxrt1050-evk.dts +++ b/arch/arm/dts/imxrt1050-evk.dts @@ -189,7 +189,6 @@ }; pinctrl_lcdif: lcdifgrp { - u-boot,dm-spl; fsl,pins = < MXRT1050_IOMUXC_GPIO_B0_00_LCD_CLK 0x1b0b1 MXRT1050_IOMUXC_GPIO_B0_01_LCD_ENABLE 0x1b0b1 -- 2.25.1 ^ permalink raw reply related [flat|nested] 59+ messages in thread
* [PATCH v3 22/22] ARM: dts: imxrt1050-evk: remove u-boot,dm-spl 2021-05-13 10:19 ` [PATCH v3 22/22] ARM: dts: imxrt1050-evk: remove u-boot,dm-spl Giulio Benetti @ 2021-06-09 13:43 ` sbabic 0 siblings, 0 replies; 59+ messages in thread From: sbabic @ 2021-06-09 13:43 UTC (permalink / raw) To: Giulio Benetti, U-Boot > We don't need lcdif to be enable in SPL, so let's remove u-boot,dm-spl. > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de ===================================================================== ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock 2021-05-13 10:19 ` Giulio Benetti ` (3 preceding siblings ...) 2021-05-13 10:19 ` [PATCH v3 22/22] ARM: dts: imxrt1050-evk: remove u-boot,dm-spl Giulio Benetti @ 2021-05-13 10:21 ` Giulio Benetti 4 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:21 UTC (permalink / raw) To: u-boot Sorry for this patch sent twice. My e-mail provider doesn't let me send more than 18 e-mail at a time, so I need to send it in 2 times and I've left this. Best regards -- Giulio Benetti Benetti Engineering sas On 5/13/21 12:19 PM, Giulio Benetti wrote: > Some SoC needs "disp_axi" clock to be enabled, so let's try to retrieve it > and enabling. If it fails it gives only a debug(), but this clock as well > as "axi" clock is not mandatory. > > Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> > --- > drivers/video/mxsfb.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c > index 147bd668fe..523d8a8d98 100644 > --- a/drivers/video/mxsfb.c > +++ b/drivers/video/mxsfb.c > @@ -98,6 +98,17 @@ static void mxs_lcd_init(struct udevice *dev, u32 fb_addr, > return; > } > } > + > + ret = clk_get_by_name(dev, "disp_axi", &clk); > + if (!ret) { > + debug("%s: Failed to get mxs disp_axi clk: %d\n", __func__, ret); > + } else { > + ret = clk_enable(&clk); > + if (ret < 0) { > + dev_err(dev, "Failed to enable mxs disp_axi clk: %d\n", ret); > + return; > + } > + } > #else > /* Kick in the LCDIF clock */ > mxs_set_lcdclk(MXS_LCDIF_BASE, timings->pixelclock.typ / 1000); > ^ permalink raw reply [flat|nested] 59+ messages in thread
* [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb 2021-05-13 8:14 ` Stefano Babic ` (2 preceding siblings ...) 2021-05-13 10:19 ` Giulio Benetti @ 2021-05-13 10:26 ` Giulio Benetti 3 siblings, 0 replies; 59+ messages in thread From: Giulio Benetti @ 2021-05-13 10:26 UTC (permalink / raw) To: u-boot Hi Stefano, On 5/13/21 10:14 AM, Stefano Babic wrote: > Hi Giulio, > > On 13.05.21 00:12, Giulio Benetti wrote: >> Hi Stefano, >> >> On 5/2/21 1:44 AM, Giulio Benetti wrote: >>> On 4/13/21 1:05 AM, Giulio Benetti wrote: >>>> On 4/13/21 1:03 AM, Giulio Benetti wrote: >>>>> This patchset fixes u-boot hang on i.MXRT1050 while setting lcdif in >>>>> mxsfb >>>>> driver. There are 2 gates to be enabled to initialize mxsfb so let's >>>>> introduce the missing gate as a clock and rename "per" clock to >>>>> "pix" clock >>>>> since in the other .dts files using *-lcdif "pix" is used. >>>>> >>>>> This patchset add also "disp_axi" clock enabling in mxsfb that >>>>> should make >>>>> able to every i.MX SoC with lcdif using DT. I didn't test it other than >>>>> i.MXRT1050 since I don't have the boards. If someone can test it it >>>>> would >>>>> be great. Note that i.MX23/28 should fail using DT instead because they >>>>> don't specify any clock-names in their dts. >>>> >>>> I've forgotten to specify that this patchset depends on this patchset: >>>> https://patchwork.ozlabs.org/project/uboot/list/?series=237909 >>> >>> This ^^^ series is superseeded by v2: >>> https://patchwork.ozlabs.org/project/uboot/list/?series=241701 >> >> Current patchset is not superseeded, only the one which depends to is >> superseeded by v2. Do you prefer me to send a unique patchset with all >> patches of both patchsets? > > Yes, or in patchset becomes a mess. Please send a complete series, thanks ! Well I've merged in a unique patchset both patchsets[1], sorry for my e-mail mess. [1]: https://patchwork.ozlabs.org/project/uboot/list/?series=243591 Best regards -- Giulio Benetti Benetti Engineering sas ^ permalink raw reply [flat|nested] 59+ messages in thread
end of thread, other threads:[~2021-06-09 13:49 UTC | newest] Thread overview: 59+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-12 23:03 [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 2021-04-12 23:03 ` [PATCH 1/5] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti 2021-04-12 23:03 ` [PATCH 2/5] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 2021-04-12 23:03 ` [PATCH 3/5] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti 2021-04-12 23:03 ` [PATCH 4/5] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti 2021-04-12 23:03 ` [PATCH 5/5] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti 2021-04-12 23:05 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti 2021-05-01 23:44 ` Giulio Benetti 2021-05-12 22:12 ` Giulio Benetti 2021-05-13 8:14 ` Stefano Babic 2021-05-13 9:09 ` [PATCH v3 00/22] Fix i.MXRT1020/50 Giulio Benetti 2021-05-13 10:18 ` Giulio Benetti 2021-05-13 10:18 ` [PATCH v3 01/22] arm: imxrt: soc: make mpu regions generic Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 02/22] timer: imx-gpt: Add timer support for i.MX SoCs family Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 03/22] ARM: dts: imxrt1020: add node label to osc Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 04/22] ARM: dts: imxrt1020: add gpt1 node Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 05/22] ARM: dts: imxrt1020-evk: enable gpt1 timer Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 06/22] ARM: dts: imxrt1020-evk: set gpt1 as tick-timer for u-boot Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 07/22] ARM: dts: imxrt1020-evk-u-boot: make gpt1 present for SPL Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 08/22] ARM: dts: imxrt1020-evk: add device_type = "memory" to memory node Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 09/22] configs: imxrt1020-evk: enable imx gpt timer as tick-timer Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 10/22] ARM: dts: imxrt1050: add node label to osc Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 11/22] ARM: dts: imxrt1050: add gpt1 node Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 12/22] ARM: dts: imxrt1050-evk: enable gpt1 timer Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 13/22] ARM: dts: imxrt1050-evk: set gpt1 as tick-timer for u-boot Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:18 ` [PATCH v3 14/22] ARM: dts: imxrt1050-evk-u-boot: make gpt1 present for SPL Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 15/22] ARM: dts: imxrt1050-evk: add device_type = "memory" to memory node Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 16/22] configs: imxrt1050-evk: enable imx gpt timer as tick-timer Giulio Benetti 2021-06-09 13:42 ` sbabic 2021-05-13 10:18 ` [PATCH v3 17/22] video: mxsfb: add enabling of "axi" clock other than "per" clock Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:18 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:19 ` Giulio Benetti 2021-05-13 10:19 ` [PATCH v3 19/22] clk: imx: clk-imxrt1050: introduce LCDIF_PIX and rename LCDIF to LCDIF_APB Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:19 ` [PATCH v3 20/22] ARM: dts: imxrt1050: move lcdif assigned clock to dtsi Giulio Benetti 2021-06-09 13:44 ` sbabic 2021-05-13 10:19 ` [PATCH v3 21/22] ARM: dts: imxrt1050: set lcdif clocks according to mxsfb driver Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:19 ` [PATCH v3 22/22] ARM: dts: imxrt1050-evk: remove u-boot,dm-spl Giulio Benetti 2021-06-09 13:43 ` sbabic 2021-05-13 10:21 ` [PATCH v3 18/22] video: mxsfb: add enabling of "disp_axi" clock Giulio Benetti 2021-05-13 10:26 ` [PATCH 0/5] Fix i.MXRT1050 hang on lcdif init and improve DT for mxsfb Giulio Benetti
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.