mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 04:43:52 -04:00
Merge tag 'imx-fixes-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
i.MX fixes for 6.1:
- Fix imx93-pd driver to release resources when error occurs in probe.
- A series from Ioana Ciornei to add missing clock frequencies for MDIO
controllers on LayerScape SoCs, so that the kernel driver can work
independently from bootloader.
- A series from Li Jun to fix USB power domain setup in i.MX8MM/N device
trees.
- Fix CPLD_Dn pull configuration for MX8Menlo board to avoid interfering
with CPLD power off functionality.
- Fix ctrl_sleep_moci GPIO setup for verdin-imx8mp board.
- Fix DT schema check warnings on uSDHC clocks for imx8-ss-conn device
tree.
- Fix up gpcv2 DT bindings to have an optional `power-domains` property.
- A couple of i.MX93 device tree fixes on S4MU interrupt and gpio-ranges
of GPIO controllers.
- Keep PU regulator on for Quad and QuadPlus based imx6dl-yapp4 boards to
work around a hardware design flaw in supply voltage distribution.
- Fix user push-button GPIO offset on imx6qdl-gw59 boards.
* tag 'imx-fixes-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
arm64: dts: ls208xa: specify clock frequencies for the MDIO controllers
arm64: dts: ls1088a: specify clock frequencies for the MDIO controllers
arm64: dts: lx2160a: specify clock frequencies for the MDIO controllers
soc: imx: imx93-pd: Fix the error handling path of imx93_pd_probe()
arm64: dts: imx93: correct gpio-ranges
arm64: dts: imx93: correct s4mu interrupt names
dt-bindings: power: gpcv2: add power-domains property
arm64: dts: imx8: correct clock order
ARM: dts: imx6dl-yapp4: Do not allow PM to switch PU regulator off on Q/QP
ARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offset
arm64: dts: imx8mn: Correct the usb power domain
arm64: dts: imx8mn: remove otg1 power domain dependency on hsio
arm64: dts: imx8mm: correct usb power domains
arm64: dts: imx8mm: remove otg1/2 power domain dependency on hsio
arm64: dts: verdin-imx8mp: fix ctrl_sleep_moci
arm64: dts: imx8mm: Enable CPLD_Dn pull down resistor on MX8Menlo
Link: https://lore.kernel.org/r/20221101031547.GB125525@dragon
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -81,6 +81,9 @@ properties:
|
||||
|
||||
power-supply: true
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
description: |
|
||||
A number of phandles to resets that need to be asserted during
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_pu {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
®_usb_h1_vbus {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
user-pb {
|
||||
label = "user_pb";
|
||||
gpios = <&gsc_gpio 0 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gsc_gpio 2 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <BTN_0>;
|
||||
};
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
user-pb {
|
||||
label = "user_pb";
|
||||
gpios = <&gsc_gpio 0 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gsc_gpio 2 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <BTN_0>;
|
||||
};
|
||||
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_pu {
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
®_usb_h1_vbus {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -779,6 +779,9 @@
|
||||
little-endian;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-frequency = <2500000>;
|
||||
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
|
||||
QORIQ_CLK_PLL_DIV(1)>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -788,6 +791,9 @@
|
||||
little-endian;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-frequency = <2500000>;
|
||||
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
|
||||
QORIQ_CLK_PLL_DIV(1)>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
@@ -532,6 +532,9 @@
|
||||
little-endian;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-frequency = <2500000>;
|
||||
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
|
||||
QORIQ_CLK_PLL_DIV(2)>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -541,6 +544,9 @@
|
||||
little-endian;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-frequency = <2500000>;
|
||||
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
|
||||
QORIQ_CLK_PLL_DIV(2)>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
@@ -1385,6 +1385,9 @@
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
little-endian;
|
||||
clock-frequency = <2500000>;
|
||||
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
|
||||
QORIQ_CLK_PLL_DIV(2)>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1395,6 +1398,9 @@
|
||||
little-endian;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-frequency = <2500000>;
|
||||
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
|
||||
QORIQ_CLK_PLL_DIV(2)>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
@@ -38,9 +38,9 @@ conn_subsys: bus@5b000000 {
|
||||
interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg = <0x5b010000 0x10000>;
|
||||
clocks = <&sdhc0_lpcg IMX_LPCG_CLK_4>,
|
||||
<&sdhc0_lpcg IMX_LPCG_CLK_5>,
|
||||
<&sdhc0_lpcg IMX_LPCG_CLK_0>;
|
||||
clock-names = "ipg", "per", "ahb";
|
||||
<&sdhc0_lpcg IMX_LPCG_CLK_0>,
|
||||
<&sdhc0_lpcg IMX_LPCG_CLK_5>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
power-domains = <&pd IMX_SC_R_SDHC_0>;
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -49,9 +49,9 @@ conn_subsys: bus@5b000000 {
|
||||
interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg = <0x5b020000 0x10000>;
|
||||
clocks = <&sdhc1_lpcg IMX_LPCG_CLK_4>,
|
||||
<&sdhc1_lpcg IMX_LPCG_CLK_5>,
|
||||
<&sdhc1_lpcg IMX_LPCG_CLK_0>;
|
||||
clock-names = "ipg", "per", "ahb";
|
||||
<&sdhc1_lpcg IMX_LPCG_CLK_0>,
|
||||
<&sdhc1_lpcg IMX_LPCG_CLK_5>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
power-domains = <&pd IMX_SC_R_SDHC_1>;
|
||||
fsl,tuning-start-tap = <20>;
|
||||
fsl,tuning-step = <2>;
|
||||
@@ -62,9 +62,9 @@ conn_subsys: bus@5b000000 {
|
||||
interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg = <0x5b030000 0x10000>;
|
||||
clocks = <&sdhc2_lpcg IMX_LPCG_CLK_4>,
|
||||
<&sdhc2_lpcg IMX_LPCG_CLK_5>,
|
||||
<&sdhc2_lpcg IMX_LPCG_CLK_0>;
|
||||
clock-names = "ipg", "per", "ahb";
|
||||
<&sdhc2_lpcg IMX_LPCG_CLK_0>,
|
||||
<&sdhc2_lpcg IMX_LPCG_CLK_5>;
|
||||
clock-names = "ipg", "ahb", "per";
|
||||
power-domains = <&pd IMX_SC_R_SDHC_2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -250,21 +250,21 @@
|
||||
/* SODIMM 96 */
|
||||
MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x1c4
|
||||
/* CPLD_D[7] */
|
||||
MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x184
|
||||
/* CPLD_D[6] */
|
||||
MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x184
|
||||
/* CPLD_D[5] */
|
||||
MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x184
|
||||
/* CPLD_D[4] */
|
||||
MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x184
|
||||
/* CPLD_D[3] */
|
||||
MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x184
|
||||
/* CPLD_D[2] */
|
||||
MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x184
|
||||
/* CPLD_D[1] */
|
||||
MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x184
|
||||
/* CPLD_D[0] */
|
||||
MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x1c4
|
||||
MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x184
|
||||
/* KBD_intK */
|
||||
MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x1c4
|
||||
/* DISP_reset */
|
||||
|
||||
@@ -276,6 +276,7 @@
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
|
||||
clock-names = "main_clk";
|
||||
power-domains = <&pgc_otg1>;
|
||||
};
|
||||
|
||||
usbphynop2: usbphynop2 {
|
||||
@@ -285,6 +286,7 @@
|
||||
assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
|
||||
clock-names = "main_clk";
|
||||
power-domains = <&pgc_otg2>;
|
||||
};
|
||||
|
||||
soc: soc@0 {
|
||||
@@ -674,13 +676,11 @@
|
||||
pgc_otg1: power-domain@2 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_OTG1>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
};
|
||||
|
||||
pgc_otg2: power-domain@3 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MM_POWER_DOMAIN_OTG2>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
};
|
||||
|
||||
pgc_gpumix: power-domain@4 {
|
||||
@@ -1186,7 +1186,7 @@
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
|
||||
phys = <&usbphynop1>;
|
||||
fsl,usbmisc = <&usbmisc1 0>;
|
||||
power-domains = <&pgc_otg1>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1206,7 +1206,7 @@
|
||||
assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
|
||||
phys = <&usbphynop2>;
|
||||
fsl,usbmisc = <&usbmisc2 0>;
|
||||
power-domains = <&pgc_otg2>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
@@ -662,7 +662,6 @@
|
||||
pgc_otg1: power-domain@1 {
|
||||
#power-domain-cells = <0>;
|
||||
reg = <IMX8MN_POWER_DOMAIN_OTG1>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
};
|
||||
|
||||
pgc_gpumix: power-domain@2 {
|
||||
@@ -1076,7 +1075,7 @@
|
||||
assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>;
|
||||
phys = <&usbphynop1>;
|
||||
fsl,usbmisc = <&usbmisc1 0>;
|
||||
power-domains = <&pgc_otg1>;
|
||||
power-domains = <&pgc_hsiomix>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1175,5 +1174,6 @@
|
||||
assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
|
||||
assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
|
||||
clock-names = "main_clk";
|
||||
power-domains = <&pgc_otg1>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -354,16 +354,6 @@
|
||||
"SODIMM_82",
|
||||
"SODIMM_70",
|
||||
"SODIMM_72";
|
||||
|
||||
ctrl-sleep-moci-hog {
|
||||
gpio-hog;
|
||||
/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
|
||||
gpios = <29 GPIO_ACTIVE_HIGH>;
|
||||
line-name = "CTRL_SLEEP_MOCI#";
|
||||
output-high;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
|
||||
};
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
@@ -432,6 +422,16 @@
|
||||
"SODIMM_256",
|
||||
"SODIMM_48",
|
||||
"SODIMM_44";
|
||||
|
||||
ctrl-sleep-moci-hog {
|
||||
gpio-hog;
|
||||
/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
|
||||
gpios = <29 GPIO_ACTIVE_HIGH>;
|
||||
line-name = "CTRL_SLEEP_MOCI#";
|
||||
output-high;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
|
||||
};
|
||||
};
|
||||
|
||||
/* On-module I2C */
|
||||
|
||||
@@ -451,7 +451,7 @@
|
||||
clocks = <&clk IMX93_CLK_GPIO2_GATE>,
|
||||
<&clk IMX93_CLK_GPIO2_GATE>;
|
||||
clock-names = "gpio", "port";
|
||||
gpio-ranges = <&iomuxc 0 32 32>;
|
||||
gpio-ranges = <&iomuxc 0 4 30>;
|
||||
};
|
||||
|
||||
gpio3: gpio@43820080 {
|
||||
@@ -465,7 +465,8 @@
|
||||
clocks = <&clk IMX93_CLK_GPIO3_GATE>,
|
||||
<&clk IMX93_CLK_GPIO3_GATE>;
|
||||
clock-names = "gpio", "port";
|
||||
gpio-ranges = <&iomuxc 0 64 32>;
|
||||
gpio-ranges = <&iomuxc 0 84 8>, <&iomuxc 8 66 18>,
|
||||
<&iomuxc 26 34 2>, <&iomuxc 28 0 4>;
|
||||
};
|
||||
|
||||
gpio4: gpio@43830080 {
|
||||
@@ -479,7 +480,7 @@
|
||||
clocks = <&clk IMX93_CLK_GPIO4_GATE>,
|
||||
<&clk IMX93_CLK_GPIO4_GATE>;
|
||||
clock-names = "gpio", "port";
|
||||
gpio-ranges = <&iomuxc 0 96 32>;
|
||||
gpio-ranges = <&iomuxc 0 38 28>, <&iomuxc 28 36 2>;
|
||||
};
|
||||
|
||||
gpio1: gpio@47400080 {
|
||||
@@ -493,7 +494,7 @@
|
||||
clocks = <&clk IMX93_CLK_GPIO1_GATE>,
|
||||
<&clk IMX93_CLK_GPIO1_GATE>;
|
||||
clock-names = "gpio", "port";
|
||||
gpio-ranges = <&iomuxc 0 0 32>;
|
||||
gpio-ranges = <&iomuxc 0 92 16>;
|
||||
};
|
||||
|
||||
s4muap: mailbox@47520000 {
|
||||
@@ -501,7 +502,7 @@
|
||||
reg = <0x47520000 0x10000>;
|
||||
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "txirq", "rxirq";
|
||||
interrupt-names = "tx", "rx";
|
||||
#mbox-cells = <2>;
|
||||
};
|
||||
|
||||
|
||||
@@ -135,11 +135,24 @@ static int imx93_pd_probe(struct platform_device *pdev)
|
||||
|
||||
ret = pm_genpd_init(&domain->genpd, NULL, domain->init_off);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_clk_unprepare;
|
||||
|
||||
platform_set_drvdata(pdev, domain);
|
||||
|
||||
return of_genpd_add_provider_simple(np, &domain->genpd);
|
||||
ret = of_genpd_add_provider_simple(np, &domain->genpd);
|
||||
if (ret)
|
||||
goto err_genpd_remove;
|
||||
|
||||
return 0;
|
||||
|
||||
err_genpd_remove:
|
||||
pm_genpd_remove(&domain->genpd);
|
||||
|
||||
err_clk_unprepare:
|
||||
if (!domain->init_off)
|
||||
clk_bulk_disable_unprepare(domain->num_clks, domain->clks);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct of_device_id imx93_pd_ids[] = {
|
||||
|
||||
Reference in New Issue
Block a user