Skip to content

Commit 48519d6

Browse files
committed
Merge tag 'imx-fixes-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
i.MX fixes for 6.6: - A couple of i.MX8MP device tree changes from Adam Ford to fix clock configuration regressions caused by 16c9845 ("arm64: dts: imx8mp: don't initialize audio clocks from CCM node"). - Fix pmic-irq-hog GPIO line in imx93-tqma9352 device tree. - Fix a mmemory leak with error handling path of imx_dsp_setup_channels() in imx-dsp driver. - Fix HDMI node in imx8mm-evk device tree. - Add missing clock enable functionality for imx8mm_soc_uid() function in soc-imx8m driver. - Add missing imx8mm-prt8mm.dtb build target. * tag 'imx-fixes-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: arm64: dts: imx: Add imx8mm-prt8mm.dtb to build arm64: dts: imx8mm-evk: Fix hdmi@3d node soc: imx8m: Enable OCOTP clock for imx8mm before reading registers arm64: dts: imx8mp-beacon-kit: Fix audio_pll2 clock arm64: dts: imx8mp: Fix SDMA2/3 clocks arm64: dts: freescale: tqma9352: Fix gpio hog firmware: imx-dsp: Fix an error handling path in imx_dsp_setup_channels() Link: https://lore.kernel.org/r/20230926123710.GT7231@dragon Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 3c50ffb + f09752e commit 48519d6

File tree

7 files changed

+42
-15
lines changed

7 files changed

+42
-15
lines changed

arch/arm64/boot/dts/freescale/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-mx8menlo.dtb
6666
dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb
6767
dtb-$(CONFIG_ARCH_MXC) += imx8mm-phg.dtb
6868
dtb-$(CONFIG_ARCH_MXC) += imx8mm-phyboard-polis-rdk.dtb
69+
dtb-$(CONFIG_ARCH_MXC) += imx8mm-prt8mm.dtb
6970
dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb
7071
dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
7172
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw71xx-0x.dtb

arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
port {
2828
hdmi_connector_in: endpoint {
29-
remote-endpoint = <&adv7533_out>;
29+
remote-endpoint = <&adv7535_out>;
3030
};
3131
};
3232
};
@@ -72,6 +72,13 @@
7272
enable-active-high;
7373
};
7474

75+
reg_vddext_3v3: regulator-vddext-3v3 {
76+
compatible = "regulator-fixed";
77+
regulator-name = "VDDEXT_3V3";
78+
regulator-min-microvolt = <3300000>;
79+
regulator-max-microvolt = <3300000>;
80+
};
81+
7582
backlight: backlight {
7683
compatible = "pwm-backlight";
7784
pwms = <&pwm1 0 5000000 0>;
@@ -317,15 +324,16 @@
317324

318325
hdmi@3d {
319326
compatible = "adi,adv7535";
320-
reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
321-
reg-names = "main", "cec", "edid", "packet";
327+
reg = <0x3d>;
328+
interrupt-parent = <&gpio1>;
329+
interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
322330
adi,dsi-lanes = <4>;
323-
324-
adi,input-depth = <8>;
325-
adi,input-colorspace = "rgb";
326-
adi,input-clock = "1x";
327-
adi,input-style = <1>;
328-
adi,input-justification = "evenly";
331+
avdd-supply = <&buck5_reg>;
332+
dvdd-supply = <&buck5_reg>;
333+
pvdd-supply = <&buck5_reg>;
334+
a2vdd-supply = <&buck5_reg>;
335+
v3p3-supply = <&reg_vddext_3v3>;
336+
v1p2-supply = <&buck5_reg>;
329337

330338
ports {
331339
#address-cells = <1>;
@@ -334,15 +342,15 @@
334342
port@0 {
335343
reg = <0>;
336344

337-
adv7533_in: endpoint {
345+
adv7535_in: endpoint {
338346
remote-endpoint = <&dsi_out>;
339347
};
340348
};
341349

342350
port@1 {
343351
reg = <1>;
344352

345-
adv7533_out: endpoint {
353+
adv7535_out: endpoint {
346354
remote-endpoint = <&hdmi_connector_in>;
347355
};
348356
};
@@ -448,7 +456,7 @@
448456
reg = <1>;
449457

450458
dsi_out: endpoint {
451-
remote-endpoint = <&adv7533_in>;
459+
remote-endpoint = <&adv7535_in>;
452460
data-lanes = <1 2 3 4>;
453461
};
454462
};

arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,9 +381,10 @@
381381
&sai3 {
382382
pinctrl-names = "default";
383383
pinctrl-0 = <&pinctrl_sai3>;
384-
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
384+
assigned-clocks = <&clk IMX8MP_CLK_SAI3>,
385+
<&clk IMX8MP_AUDIO_PLL2> ;
385386
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
386-
assigned-clock-rates = <12288000>;
387+
assigned-clock-rates = <12288000>, <361267200>;
387388
fsl,sai-mclk-direction-output;
388389
status = "okay";
389390
};

arch/arm64/boot/dts/freescale/imx8mp.dtsi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,12 @@
790790
reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>;
791791
clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
792792
<&clk IMX8MP_CLK_AUDIO_AXI>;
793+
assigned-clocks = <&clk IMX8MP_CLK_AUDIO_AHB>,
794+
<&clk IMX8MP_CLK_AUDIO_AXI_SRC>;
795+
assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
796+
<&clk IMX8MP_SYS_PLL1_800M>;
797+
assigned-clock-rates = <400000000>,
798+
<600000000>;
793799
};
794800

795801
pgc_gpu2d: power-domain@6 {

arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
&gpio1 {
8282
pmic-irq-hog {
8383
gpio-hog;
84-
gpios = <2 GPIO_ACTIVE_LOW>;
84+
gpios = <3 GPIO_ACTIVE_LOW>;
8585
input;
8686
line-name = "PMIC_IRQ#";
8787
};

drivers/firmware/imx/imx-dsp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ static int imx_dsp_setup_channels(struct imx_dsp_ipc *dsp_ipc)
114114
dsp_chan->idx = i % 2;
115115
dsp_chan->ch = mbox_request_channel_byname(cl, chan_name);
116116
if (IS_ERR(dsp_chan->ch)) {
117+
kfree(dsp_chan->name);
117118
ret = PTR_ERR(dsp_chan->ch);
118119
if (ret != -EPROBE_DEFER)
119120
dev_err(dev, "Failed to request mbox chan %s ret %d\n",

drivers/soc/imx/soc-imx8m.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ static void __init imx8mm_soc_uid(void)
100100
{
101101
void __iomem *ocotp_base;
102102
struct device_node *np;
103+
struct clk *clk;
103104
u32 offset = of_machine_is_compatible("fsl,imx8mp") ?
104105
IMX8MP_OCOTP_UID_OFFSET : 0;
105106

@@ -109,11 +110,20 @@ static void __init imx8mm_soc_uid(void)
109110

110111
ocotp_base = of_iomap(np, 0);
111112
WARN_ON(!ocotp_base);
113+
clk = of_clk_get_by_name(np, NULL);
114+
if (IS_ERR(clk)) {
115+
WARN_ON(IS_ERR(clk));
116+
return;
117+
}
118+
119+
clk_prepare_enable(clk);
112120

113121
soc_uid = readl_relaxed(ocotp_base + OCOTP_UID_HIGH + offset);
114122
soc_uid <<= 32;
115123
soc_uid |= readl_relaxed(ocotp_base + OCOTP_UID_LOW + offset);
116124

125+
clk_disable_unprepare(clk);
126+
clk_put(clk);
117127
iounmap(ocotp_base);
118128
of_node_put(np);
119129
}

0 commit comments

Comments
 (0)