Commit 42833468 authored by Linus Torvalds's avatar Linus Torvalds

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
parents cb247857 4dd6a997
...@@ -297,6 +297,7 @@ tscadc: tscadc@50030000 { ...@@ -297,6 +297,7 @@ tscadc: tscadc@50030000 {
#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 @@ MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 ...@@ -507,7 +507,7 @@ MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
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 @@ lvds1_out: endpoint { ...@@ -668,7 +668,7 @@ lvds1_out: endpoint {
&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 @@ MX7D_PAD_LCD_RESET__LCD_RESET 0x79 ...@@ -557,6 +557,14 @@ MX7D_PAD_LCD_RESET__LCD_RESET 0x79
>; >;
}; };
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 @@ pinctrl_pwm1: pwm1grp { ...@@ -697,13 +705,5 @@ pinctrl_pwm1: pwm1grp {
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 @@ ebi: ebi@10000000 { ...@@ -303,7 +303,7 @@ ebi: ebi@10000000 {
#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 @@ tcb1: timer@f8010000 { ...@@ -1048,18 +1048,18 @@ tcb1: timer@f8010000 {
}; };
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 @@ / { ...@@ -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 @@ / { ...@@ -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 @@ / { ...@@ -53,6 +53,7 @@ / {
"allwinner,sun50i-a64"; "allwinner,sun50i-a64";
aliases { aliases {
ethernet0 = &emac;
serial0 = &uart0; serial0 = &uart0;
}; };
......
...@@ -120,5 +120,8 @@ &mmc2 { ...@@ -120,5 +120,8 @@ &mmc2 {
}; };
&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 @@ chosen { ...@@ -45,7 +45,7 @@ chosen {
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) ...@@ -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) ...@@ -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) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment