ARM: SoC fixes for 4.13
A small number of bugfixes, nothing serious this time. Here is a full list. 4.13 regression fix: - imx7d-sdb pinctrl support regressed in 4.13 due to an incomplete patch DT fixes for recently added devices: - badly copied DT entries on imx6qdl-nitrogen6_som broke PCI reset - sama5d2 memory controller had the wrong ID and registers - imx7 power domains did not work correctly with deferred probing (driver added in 4.12) - Allwinner H5 pinctrl (added in 4.12) did not work right with GPIO interrupts Fixes for older bugs that just got noticed: - i.MX25 ADC support (added in 4.6) apparently never worked right due to a missing 'ranges' property in DT. - Renesas Salvador Audio support (added in v4.5) was broken for device repeated bind/unbind due to a naming conflict. - Various allwinner boards are missing an 'ethernet' alias in DT, leading to unstable device naming. Preventive bugfix: - TI Keystone needs a fix to prevent a NULL pointer dereference with an upcoming PM change. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAWZbAq2CrR//JCVInAQLM6xAAg6Z061j2pQn9J8+AJH6NlhNvZg6dhGmp mtIWs77lXgghqQU7LZrxGXNpqxpY+p3XD5F4EWl1LLZ+USIXjYZdPPnZobTClmeX 9+z3PbiHTqmSVfxh+hwE/6Cwg1poqYhFn0tAmOstPBJ8+H3cZONwqGMeCrc2WguX v9AFnayisBZOnKz7zgpszthSGqovASSPpw/4VY7TwRO1fIFd9/2H0ZW3pd7alD7+ yD0XO04OEqKKAmd1DT6kAX3E+E+oqqTvMgBUOYiYVIveokk1ONpJMeumjEqZng9w NAgDfT0in5hDWfl3eQ83CawgT4hUxOXqcC3nY6tEcrFO/qcMIW5TDM0YD7zqDKGN o0fELOdsW0hew7ceNNd/zjJVD4WXlxqcIAS0A/buhIvpFWr3ruA4DhycKw5L5wlw 3XEQwxDGnBsEF6ZGeqIrLc6LpOLH3i6TWTskyig1AZxymjP5coo4mR36vKh3zKfS E0O/zLdkKpnaV8V5N9Ln26PGpL4JKSuAxy59mlEZ4VSR/FfCZTm+R6/w6NeY2noU DVMzso6WeOMLBkGFATSZ/D0MuRimBYoBGdC1wlinHGXmPqMBjkbwASmJakIRQdBV ifBw3pBQMEiLygyIV16KY/zAtI0waEwn61h0jGDoHA1FX3nHkSmpEjqSvG7nXJpF 0wqpFPu93H0= =9Xbk -----END PGP SIGNATURE----- Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Arnd Bergmann: "A small number of bugfixes, nothing serious this time. Here is a full list. 4.13 regression fix: - imx7d-sdb pinctrl support regressed in 4.13 due to an incomplete patch DT fixes for recently added devices: - badly copied DT entries on imx6qdl-nitrogen6_som broke PCI reset - sama5d2 memory controller had the wrong ID and registers - imx7 power domains did not work correctly with deferred probing (driver added in 4.12) - Allwinner H5 pinctrl (added in 4.12) did not work right with GPIO interrupts Fixes for older bugs that just got noticed: - i.MX25 ADC support (added in 4.6) apparently never worked right due to a missing 'ranges' property in DT. - Renesas Salvador Audio support (added in v4.5) was broken for device repeated bind/unbind due to a naming conflict. - Various allwinner boards are missing an 'ethernet' alias in DT, leading to unstable device naming. Preventive bugfix: - TI Keystone needs a fix to prevent a NULL pointer dereference with an upcoming PM change" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: soc: ti: ti_sci_pm_domains: Populate name for genpd ARM: dts: imx6qdl-nitrogen6_som2: fix PCIe reset arm64: allwinner: h5: fix pinctrl IRQs arm64: allwinner: a64: sopine: add missing ethernet0 alias arm64: allwinner: a64: pine64: add missing ethernet0 alias arm64: allwinner: a64: bananapi-m64: add missing ethernet0 alias arm64: renesas: salvator-common: avoid audio_clkout naming conflict ARM: dts: i.MX25: add ranges to tscadc soc: imx: gpcv2: fix regulator deferred probe ARM: dts: at91: sama5d2: fix EBI/NAND controllers declaration ARM: dts: at91: sama5d2: use sama5d2 compatible string for SMC ARM: dts: imx7d-sdb: Put pinctrl_spi4 in the correct location
This commit is contained in:
commit
4283346802
@ -297,6 +297,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
ranges;
|
||||||
|
|
||||||
adc: adc@50030800 {
|
adc: adc@50030800 {
|
||||||
compatible = "fsl,imx25-gcq";
|
compatible = "fsl,imx25-gcq";
|
||||||
|
@ -507,7 +507,7 @@
|
|||||||
pinctrl_pcie: pciegrp {
|
pinctrl_pcie: pciegrp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
/* PCIe reset */
|
/* PCIe reset */
|
||||||
MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x030b0
|
MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x030b0
|
||||||
MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x030b0
|
MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x030b0
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
@ -668,7 +668,7 @@
|
|||||||
&pcie {
|
&pcie {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_pcie>;
|
pinctrl-0 = <&pinctrl_pcie>;
|
||||||
reset-gpio = <&gpio6 31 GPIO_ACTIVE_LOW>;
|
reset-gpio = <&gpio3 0 GPIO_ACTIVE_LOW>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -557,6 +557,14 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pinctrl_spi4: spi4grp {
|
||||||
|
fsl,pins = <
|
||||||
|
MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x59
|
||||||
|
MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
|
||||||
|
MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
pinctrl_tsc2046_pendown: tsc2046_pendown {
|
pinctrl_tsc2046_pendown: tsc2046_pendown {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x59
|
MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x59
|
||||||
@ -697,13 +705,5 @@
|
|||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT 0x110b0
|
MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT 0x110b0
|
||||||
>;
|
>;
|
||||||
|
|
||||||
pinctrl_spi4: spi4grp {
|
|
||||||
fsl,pins = <
|
|
||||||
MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x59
|
|
||||||
MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
|
|
||||||
MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -303,7 +303,7 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
atmel,smc = <&hsmc>;
|
atmel,smc = <&hsmc>;
|
||||||
reg = <0x10000000 0x10000000
|
reg = <0x10000000 0x10000000
|
||||||
0x40000000 0x30000000>;
|
0x60000000 0x30000000>;
|
||||||
ranges = <0x0 0x0 0x10000000 0x10000000
|
ranges = <0x0 0x0 0x10000000 0x10000000
|
||||||
0x1 0x0 0x60000000 0x10000000
|
0x1 0x0 0x60000000 0x10000000
|
||||||
0x2 0x0 0x70000000 0x10000000
|
0x2 0x0 0x70000000 0x10000000
|
||||||
@ -1048,18 +1048,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
hsmc: hsmc@f8014000 {
|
hsmc: hsmc@f8014000 {
|
||||||
compatible = "atmel,sama5d3-smc", "syscon", "simple-mfd";
|
compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
|
||||||
reg = <0xf8014000 0x1000>;
|
reg = <0xf8014000 0x1000>;
|
||||||
interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
|
interrupts = <17 IRQ_TYPE_LEVEL_HIGH 6>;
|
||||||
clocks = <&hsmc_clk>;
|
clocks = <&hsmc_clk>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
pmecc: ecc-engine@ffffc070 {
|
pmecc: ecc-engine@f8014070 {
|
||||||
compatible = "atmel,sama5d2-pmecc";
|
compatible = "atmel,sama5d2-pmecc";
|
||||||
reg = <0xffffc070 0x490>,
|
reg = <0xf8014070 0x490>,
|
||||||
<0xffffc500 0x100>;
|
<0xf8014500 0x100>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
|
compatible = "sinovoip,bananapi-m64", "allwinner,sun50i-a64";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
|
ethernet0 = &emac;
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
serial1 = &uart1;
|
serial1 = &uart1;
|
||||||
};
|
};
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
compatible = "pine64,pine64", "allwinner,sun50i-a64";
|
compatible = "pine64,pine64", "allwinner,sun50i-a64";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
|
ethernet0 = &emac;
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
serial1 = &uart1;
|
serial1 = &uart1;
|
||||||
serial2 = &uart2;
|
serial2 = &uart2;
|
||||||
|
@ -53,6 +53,7 @@
|
|||||||
"allwinner,sun50i-a64";
|
"allwinner,sun50i-a64";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
|
ethernet0 = &emac;
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -120,5 +120,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
|
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
compatible = "allwinner,sun50i-h5-pinctrl";
|
compatible = "allwinner,sun50i-h5-pinctrl";
|
||||||
};
|
};
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
audio_clkout: audio_clkout {
|
audio_clkout: audio-clkout {
|
||||||
/*
|
/*
|
||||||
* This is same as <&rcar_sound 0>
|
* This is same as <&rcar_sound 0>
|
||||||
* but needed to avoid cs2000/rcar_sound probe dead-lock
|
* but needed to avoid cs2000/rcar_sound probe dead-lock
|
||||||
|
@ -200,16 +200,11 @@ static int imx7_pgc_domain_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
domain->dev = &pdev->dev;
|
domain->dev = &pdev->dev;
|
||||||
|
|
||||||
ret = pm_genpd_init(&domain->genpd, NULL, true);
|
|
||||||
if (ret) {
|
|
||||||
dev_err(domain->dev, "Failed to init power domain\n");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
domain->regulator = devm_regulator_get_optional(domain->dev, "power");
|
domain->regulator = devm_regulator_get_optional(domain->dev, "power");
|
||||||
if (IS_ERR(domain->regulator)) {
|
if (IS_ERR(domain->regulator)) {
|
||||||
if (PTR_ERR(domain->regulator) != -ENODEV) {
|
if (PTR_ERR(domain->regulator) != -ENODEV) {
|
||||||
dev_err(domain->dev, "Failed to get domain's regulator\n");
|
if (PTR_ERR(domain->regulator) != -EPROBE_DEFER)
|
||||||
|
dev_err(domain->dev, "Failed to get domain's regulator\n");
|
||||||
return PTR_ERR(domain->regulator);
|
return PTR_ERR(domain->regulator);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -217,6 +212,12 @@ static int imx7_pgc_domain_probe(struct platform_device *pdev)
|
|||||||
domain->voltage, domain->voltage);
|
domain->voltage, domain->voltage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = pm_genpd_init(&domain->genpd, NULL, true);
|
||||||
|
if (ret) {
|
||||||
|
dev_err(domain->dev, "Failed to init power domain\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
ret = of_genpd_add_provider_simple(domain->dev->of_node,
|
ret = of_genpd_add_provider_simple(domain->dev->of_node,
|
||||||
&domain->genpd);
|
&domain->genpd);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -176,6 +176,8 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
ti_sci_pd->dev = dev;
|
ti_sci_pd->dev = dev;
|
||||||
|
|
||||||
|
ti_sci_pd->pd.name = "ti_sci_pd";
|
||||||
|
|
||||||
ti_sci_pd->pd.attach_dev = ti_sci_pd_attach_dev;
|
ti_sci_pd->pd.attach_dev = ti_sci_pd_attach_dev;
|
||||||
ti_sci_pd->pd.detach_dev = ti_sci_pd_detach_dev;
|
ti_sci_pd->pd.detach_dev = ti_sci_pd_detach_dev;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user