Commit e1915c81 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:
 "Fixes this time include mostly device tree changes, as usual, the
  notable ones include:

   - A number of patches to fix most of the remaining DTC warnings that
     got introduced when DTC started warning about some obvious
     mistakes. We still have some remaining warnings that probably may
     have to wait until 4.16 to get fixed while we try to figure out
     what the correct contents should be.

   - On Allwinner A64, Ethernet PHYs need a fix after a mistake in
     coordination between patches merged through multiple branches.

   - Various fixes for PMICs on allwinner based boards

   - Two fixes for ethernet link detection on some Renesas machines

   - Two stability fixes for rockchip based boards

  Aside from device-tree, two other areas got fixes for older problems:

   - For TI Davinci DM365, a couple of fixes were needed to repair the
     MMC DMA engine support, apparently this has been broken for a
     while.

   - One important fix for all Allwinner chips with the PMIC driver as a
     loadable module"

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (23 commits)
  arm64: dts: uniphier: fix gpio-ranges property of PXs3 SoC
  arm64: dts: renesas: ulcb: Remove renesas, no-ether-link property
  arm64: dts: renesas: salvator-x: Remove renesas, no-ether-link property
  ARM: dts: tango4: remove bogus interrupt-controller property
  ARM: dts: ls1021a: fix incorrect clock references
  ARM: dts: aspeed-g4: Correct VUART IRQ number
  ARM: dts: exynos: Enable Mixer node for Exynos5800 Peach Pi machine
  ARM: dts: sun8i: a711: Reinstate the PMIC compatible
  ARM: davinci: fix mmc entries in dm365's dma_slave_map
  ARM: dts: da850-lego-ev3: Fix battery voltage gpio
  ARM: davinci: Add dma_mask to dm365's eDMA device
  ARM: davinci: Use platform_device_register_full() to create pdev for dm365's eDMA
  arm64: dts: rockchip: limit rk3328-rock64 gmac speed to 100MBit for now
  arm64: dts: rockchip: remove vdd_log from rk3399-puma
  arm64: dts: orange-pi-zero-plus2: fix sdcard detect
  arm64: allwinner: a64-sopine: Fix to use dcdc1 regulator instead of vcc3v3
  ARM: dts: sunxi: Convert to CCU index macros for HDMI controller
  sunxi-rsb: Include OF based modalias in device uevent
  ARM: dts: at91: disable the nxp,se97b SMBUS timeout on the TSE-850
  arm64: dts: rockchip: fix trailing 0 in rk3328 tsadc interrupts
  ...
parents 00a5ae21 abb62c46
...@@ -219,7 +219,7 @@ vuart: serial@1e787000 { ...@@ -219,7 +219,7 @@ vuart: serial@1e787000 {
compatible = "aspeed,ast2400-vuart"; compatible = "aspeed,ast2400-vuart";
reg = <0x1e787000 0x40>; reg = <0x1e787000 0x40>;
reg-shift = <2>; reg-shift = <2>;
interrupts = <10>; interrupts = <8>;
clocks = <&clk_uart>; clocks = <&clk_uart>;
no-loopback-test; no-loopback-test;
status = "disabled"; status = "disabled";
......
...@@ -221,6 +221,7 @@ &i2c0 { ...@@ -221,6 +221,7 @@ &i2c0 {
jc42@18 { jc42@18 {
compatible = "nxp,se97b", "jedec,jc-42.4-temp"; compatible = "nxp,se97b", "jedec,jc-42.4-temp";
reg = <0x18>; reg = <0x18>;
smbus-timeout-disable;
}; };
dpot: mcp4651-104@28 { dpot: mcp4651-104@28 {
......
...@@ -178,7 +178,7 @@ amp: regulator3 { ...@@ -178,7 +178,7 @@ amp: regulator3 {
*/ */
battery { battery {
pinctrl-names = "default"; pinctrl-names = "default";
pintctrl-0 = <&battery_pins>; pinctrl-0 = <&battery_pins>;
compatible = "lego,ev3-battery"; compatible = "lego,ev3-battery";
io-channels = <&adc 4>, <&adc 3>; io-channels = <&adc 4>, <&adc 3>;
io-channel-names = "voltage", "current"; io-channel-names = "voltage", "current";
...@@ -392,7 +392,7 @@ &gpio { ...@@ -392,7 +392,7 @@ &gpio {
batt_volt_en { batt_volt_en {
gpio-hog; gpio-hog;
gpios = <6 GPIO_ACTIVE_HIGH>; gpios = <6 GPIO_ACTIVE_HIGH>;
output-low; output-high;
}; };
}; };
......
...@@ -664,6 +664,10 @@ &i2s0 { ...@@ -664,6 +664,10 @@ &i2s0 {
status = "okay"; status = "okay";
}; };
&mixer {
status = "okay";
};
/* eMMC flash */ /* eMMC flash */
&mmc_0 { &mmc_0 {
status = "okay"; status = "okay";
......
...@@ -215,7 +215,7 @@ codec: sgtl5000@2a { ...@@ -215,7 +215,7 @@ codec: sgtl5000@2a {
reg = <0x2a>; reg = <0x2a>;
VDDA-supply = <&reg_3p3v>; VDDA-supply = <&reg_3p3v>;
VDDIO-supply = <&reg_3p3v>; VDDIO-supply = <&reg_3p3v>;
clocks = <&sys_mclk 1>; clocks = <&sys_mclk>;
}; };
}; };
}; };
......
...@@ -187,7 +187,7 @@ codec: sgtl5000@a { ...@@ -187,7 +187,7 @@ codec: sgtl5000@a {
reg = <0x0a>; reg = <0x0a>;
VDDA-supply = <&reg_3p3v>; VDDA-supply = <&reg_3p3v>;
VDDIO-supply = <&reg_3p3v>; VDDIO-supply = <&reg_3p3v>;
clocks = <&sys_mclk 1>; clocks = <&sys_mclk>;
}; };
}; };
......
...@@ -83,6 +83,10 @@ vsys: vsys-regulator { ...@@ -83,6 +83,10 @@ vsys: vsys-regulator {
}; };
}; };
&cpu0 {
cpu0-supply = <&vdd_arm>;
};
&i2c1 { &i2c1 {
status = "okay"; status = "okay";
clock-frequency = <400000>; clock-frequency = <400000>;
......
...@@ -956,7 +956,7 @@ crypto: cypto-controller@ff8a0000 { ...@@ -956,7 +956,7 @@ crypto: cypto-controller@ff8a0000 {
iep_mmu: iommu@ff900800 { iep_mmu: iommu@ff900800 {
compatible = "rockchip,iommu"; compatible = "rockchip,iommu";
reg = <0x0 0xff900800 0x0 0x40>; reg = <0x0 0xff900800 0x0 0x40>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "iep_mmu"; interrupt-names = "iep_mmu";
#iommu-cells = <0>; #iommu-cells = <0>;
status = "disabled"; status = "disabled";
......
...@@ -502,8 +502,8 @@ hdmi: hdmi@1c16000 { ...@@ -502,8 +502,8 @@ hdmi: hdmi@1c16000 {
reg = <0x01c16000 0x1000>; reg = <0x01c16000 0x1000>;
interrupts = <58>; interrupts = <58>;
clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>, clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
<&ccu 9>, <&ccu CLK_PLL_VIDEO0_2X>,
<&ccu 18>; <&ccu CLK_PLL_VIDEO1_2X>;
clock-names = "ahb", "mod", "pll-0", "pll-1"; clock-names = "ahb", "mod", "pll-0", "pll-1";
dmas = <&dma SUN4I_DMA_NORMAL 16>, dmas = <&dma SUN4I_DMA_NORMAL 16>,
<&dma SUN4I_DMA_NORMAL 16>, <&dma SUN4I_DMA_NORMAL 16>,
......
...@@ -82,8 +82,8 @@ hdmi: hdmi@1c16000 { ...@@ -82,8 +82,8 @@ hdmi: hdmi@1c16000 {
reg = <0x01c16000 0x1000>; reg = <0x01c16000 0x1000>;
interrupts = <58>; interrupts = <58>;
clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>, clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>,
<&ccu 9>, <&ccu CLK_PLL_VIDEO0_2X>,
<&ccu 16>; <&ccu CLK_PLL_VIDEO1_2X>;
clock-names = "ahb", "mod", "pll-0", "pll-1"; clock-names = "ahb", "mod", "pll-0", "pll-1";
dmas = <&dma SUN4I_DMA_NORMAL 16>, dmas = <&dma SUN4I_DMA_NORMAL 16>,
<&dma SUN4I_DMA_NORMAL 16>, <&dma SUN4I_DMA_NORMAL 16>,
......
...@@ -429,8 +429,8 @@ hdmi: hdmi@1c16000 { ...@@ -429,8 +429,8 @@ hdmi: hdmi@1c16000 {
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>, clocks = <&ccu CLK_AHB1_HDMI>, <&ccu CLK_HDMI>,
<&ccu CLK_HDMI_DDC>, <&ccu CLK_HDMI_DDC>,
<&ccu 7>, <&ccu CLK_PLL_VIDEO0_2X>,
<&ccu 13>; <&ccu CLK_PLL_VIDEO1_2X>;
clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1"; clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
resets = <&ccu RST_AHB1_HDMI>; resets = <&ccu RST_AHB1_HDMI>;
reset-names = "ahb"; reset-names = "ahb";
......
...@@ -581,8 +581,8 @@ hdmi: hdmi@1c16000 { ...@@ -581,8 +581,8 @@ hdmi: hdmi@1c16000 {
reg = <0x01c16000 0x1000>; reg = <0x01c16000 0x1000>;
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>, clocks = <&ccu CLK_AHB_HDMI0>, <&ccu CLK_HDMI>,
<&ccu 9>, <&ccu CLK_PLL_VIDEO0_2X>,
<&ccu 18>; <&ccu CLK_PLL_VIDEO1_2X>;
clock-names = "ahb", "mod", "pll-0", "pll-1"; clock-names = "ahb", "mod", "pll-0", "pll-1";
dmas = <&dma SUN4I_DMA_NORMAL 16>, dmas = <&dma SUN4I_DMA_NORMAL 16>,
<&dma SUN4I_DMA_NORMAL 16>, <&dma SUN4I_DMA_NORMAL 16>,
......
...@@ -146,6 +146,7 @@ &r_rsb { ...@@ -146,6 +146,7 @@ &r_rsb {
status = "okay"; status = "okay";
axp81x: pmic@3a3 { axp81x: pmic@3a3 {
compatible = "x-powers,axp813";
reg = <0x3a3>; reg = <0x3a3>;
interrupt-parent = <&r_intc>; interrupt-parent = <&r_intc>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
......
...@@ -156,7 +156,6 @@ intc: interrupt-controller@6e000 { ...@@ -156,7 +156,6 @@ intc: interrupt-controller@6e000 {
reg = <0x6e000 0x400>; reg = <0x6e000 0x400>;
ranges = <0 0x6e000 0x400>; ranges = <0 0x6e000 0x400>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
interrupt-controller;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
......
...@@ -868,10 +868,10 @@ static const struct dma_slave_map dm365_edma_map[] = { ...@@ -868,10 +868,10 @@ static const struct dma_slave_map dm365_edma_map[] = {
{ "spi_davinci.0", "rx", EDMA_FILTER_PARAM(0, 17) }, { "spi_davinci.0", "rx", EDMA_FILTER_PARAM(0, 17) },
{ "spi_davinci.3", "tx", EDMA_FILTER_PARAM(0, 18) }, { "spi_davinci.3", "tx", EDMA_FILTER_PARAM(0, 18) },
{ "spi_davinci.3", "rx", EDMA_FILTER_PARAM(0, 19) }, { "spi_davinci.3", "rx", EDMA_FILTER_PARAM(0, 19) },
{ "dm6441-mmc.0", "rx", EDMA_FILTER_PARAM(0, 26) }, { "da830-mmc.0", "rx", EDMA_FILTER_PARAM(0, 26) },
{ "dm6441-mmc.0", "tx", EDMA_FILTER_PARAM(0, 27) }, { "da830-mmc.0", "tx", EDMA_FILTER_PARAM(0, 27) },
{ "dm6441-mmc.1", "rx", EDMA_FILTER_PARAM(0, 30) }, { "da830-mmc.1", "rx", EDMA_FILTER_PARAM(0, 30) },
{ "dm6441-mmc.1", "tx", EDMA_FILTER_PARAM(0, 31) }, { "da830-mmc.1", "tx", EDMA_FILTER_PARAM(0, 31) },
}; };
static struct edma_soc_info dm365_edma_pdata = { static struct edma_soc_info dm365_edma_pdata = {
...@@ -925,12 +925,14 @@ static struct resource edma_resources[] = { ...@@ -925,12 +925,14 @@ static struct resource edma_resources[] = {
/* not using TC*_ERR */ /* not using TC*_ERR */
}; };
static struct platform_device dm365_edma_device = { static const struct platform_device_info dm365_edma_device __initconst = {
.name = "edma", .name = "edma",
.id = 0, .id = 0,
.dev.platform_data = &dm365_edma_pdata, .dma_mask = DMA_BIT_MASK(32),
.num_resources = ARRAY_SIZE(edma_resources), .res = edma_resources,
.resource = edma_resources, .num_res = ARRAY_SIZE(edma_resources),
.data = &dm365_edma_pdata,
.size_data = sizeof(dm365_edma_pdata),
}; };
static struct resource dm365_asp_resources[] = { static struct resource dm365_asp_resources[] = {
...@@ -1428,13 +1430,18 @@ int __init dm365_init_video(struct vpfe_config *vpfe_cfg, ...@@ -1428,13 +1430,18 @@ int __init dm365_init_video(struct vpfe_config *vpfe_cfg,
static int __init dm365_init_devices(void) static int __init dm365_init_devices(void)
{ {
struct platform_device *edma_pdev;
int ret = 0; int ret = 0;
if (!cpu_is_davinci_dm365()) if (!cpu_is_davinci_dm365())
return 0; return 0;
davinci_cfg_reg(DM365_INT_EDMA_CC); davinci_cfg_reg(DM365_INT_EDMA_CC);
platform_device_register(&dm365_edma_device); edma_pdev = platform_device_register_full(&dm365_edma_device);
if (IS_ERR(edma_pdev)) {
pr_warn("%s: Failed to register eDMA\n", __func__);
return PTR_ERR(edma_pdev);
}
platform_device_register(&dm365_mdio_device); platform_device_register(&dm365_mdio_device);
platform_device_register(&dm365_emac_device); platform_device_register(&dm365_emac_device);
......
...@@ -75,6 +75,7 @@ &emac { ...@@ -75,6 +75,7 @@ &emac {
pinctrl-0 = <&rgmii_pins>; pinctrl-0 = <&rgmii_pins>;
phy-mode = "rgmii"; phy-mode = "rgmii";
phy-handle = <&ext_rgmii_phy>; phy-handle = <&ext_rgmii_phy>;
phy-supply = <&reg_dc1sw>;
status = "okay"; status = "okay";
}; };
......
...@@ -77,6 +77,7 @@ &emac { ...@@ -77,6 +77,7 @@ &emac {
pinctrl-0 = <&rmii_pins>; pinctrl-0 = <&rmii_pins>;
phy-mode = "rmii"; phy-mode = "rmii";
phy-handle = <&ext_rmii_phy1>; phy-handle = <&ext_rmii_phy1>;
phy-supply = <&reg_dc1sw>;
status = "okay"; status = "okay";
}; };
......
...@@ -82,6 +82,7 @@ &emac { ...@@ -82,6 +82,7 @@ &emac {
pinctrl-0 = <&rgmii_pins>; pinctrl-0 = <&rgmii_pins>;
phy-mode = "rgmii"; phy-mode = "rgmii";
phy-handle = <&ext_rgmii_phy>; phy-handle = <&ext_rgmii_phy>;
phy-supply = <&reg_dc1sw>;
status = "okay"; status = "okay";
}; };
...@@ -95,7 +96,7 @@ ext_rgmii_phy: ethernet-phy@1 { ...@@ -95,7 +96,7 @@ ext_rgmii_phy: ethernet-phy@1 {
&mmc2 { &mmc2 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>; pinctrl-0 = <&mmc2_pins>;
vmmc-supply = <&reg_vcc3v3>; vmmc-supply = <&reg_dcdc1>;
vqmmc-supply = <&reg_vcc1v8>; vqmmc-supply = <&reg_vcc1v8>;
bus-width = <8>; bus-width = <8>;
non-removable; non-removable;
......
...@@ -45,19 +45,10 @@ ...@@ -45,19 +45,10 @@
#include "sun50i-a64.dtsi" #include "sun50i-a64.dtsi"
/ {
reg_vcc3v3: vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&mmc0 { &mmc0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>; pinctrl-0 = <&mmc0_pins>;
vmmc-supply = <&reg_vcc3v3>; vmmc-supply = <&reg_dcdc1>;
non-removable; non-removable;
disable-wp; disable-wp;
bus-width = <4>; bus-width = <4>;
......
...@@ -71,7 +71,7 @@ &mmc0 { ...@@ -71,7 +71,7 @@ &mmc0 {
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
vmmc-supply = <&reg_vcc3v3>; vmmc-supply = <&reg_vcc3v3>;
bus-width = <4>; bus-width = <4>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
status = "okay"; status = "okay";
}; };
......
...@@ -255,7 +255,6 @@ &audio_clk_a { ...@@ -255,7 +255,6 @@ &audio_clk_a {
&avb { &avb {
pinctrl-0 = <&avb_pins>; pinctrl-0 = <&avb_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
renesas,no-ether-link;
phy-handle = <&phy0>; phy-handle = <&phy0>;
status = "okay"; status = "okay";
......
...@@ -145,7 +145,6 @@ &audio_clk_a { ...@@ -145,7 +145,6 @@ &audio_clk_a {
&avb { &avb {
pinctrl-0 = <&avb_pins>; pinctrl-0 = <&avb_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
renesas,no-ether-link;
phy-handle = <&phy0>; phy-handle = <&phy0>;
status = "okay"; status = "okay";
......
...@@ -132,6 +132,8 @@ &gmac2io { ...@@ -132,6 +132,8 @@ &gmac2io {
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>; assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>; assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
clock_in_out = "input"; clock_in_out = "input";
/* shows instability at 1GBit right now */
max-speed = <100>;
phy-supply = <&vcc_io>; phy-supply = <&vcc_io>;
phy-mode = "rgmii"; phy-mode = "rgmii";
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -514,7 +514,7 @@ map0 { ...@@ -514,7 +514,7 @@ map0 {
tsadc: tsadc@ff250000 { tsadc: tsadc@ff250000 {
compatible = "rockchip,rk3328-tsadc"; compatible = "rockchip,rk3328-tsadc";
reg = <0x0 0xff250000 0x0 0x100>; reg = <0x0 0xff250000 0x0 0x100>;
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
assigned-clocks = <&cru SCLK_TSADC>; assigned-clocks = <&cru SCLK_TSADC>;
assigned-clock-rates = <50000>; assigned-clock-rates = <50000>;
clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
......
...@@ -155,17 +155,6 @@ vcc5v0_sys: vcc5v0-sys { ...@@ -155,17 +155,6 @@ vcc5v0_sys: vcc5v0-sys {
regulator-min-microvolt = <5000000>; regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;
}; };
vdd_log: vdd-log {
compatible = "pwm-regulator";
pwms = <&pwm2 0 25000 0>;
regulator-name = "vdd_log";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
status = "okay";
};
}; };
&cpu_b0 { &cpu_b0 {
......
...@@ -198,8 +198,8 @@ gpio: gpio@55000000 { ...@@ -198,8 +198,8 @@ gpio: gpio@55000000 {
gpio-controller; gpio-controller;
#gpio-cells = <2>; #gpio-cells = <2>;
gpio-ranges = <&pinctrl 0 0 0>, gpio-ranges = <&pinctrl 0 0 0>,
<&pinctrl 96 0 0>, <&pinctrl 104 0 0>,
<&pinctrl 160 0 0>; <&pinctrl 168 0 0>;
gpio-ranges-group-names = "gpio_range0", gpio-ranges-group-names = "gpio_range0",
"gpio_range1", "gpio_range1",
"gpio_range2"; "gpio_range2";
......
...@@ -178,6 +178,7 @@ static struct bus_type sunxi_rsb_bus = { ...@@ -178,6 +178,7 @@ static struct bus_type sunxi_rsb_bus = {
.match = sunxi_rsb_device_match, .match = sunxi_rsb_device_match,
.probe = sunxi_rsb_device_probe, .probe = sunxi_rsb_device_probe,
.remove = sunxi_rsb_device_remove, .remove = sunxi_rsb_device_remove,
.uevent = of_device_uevent_modalias,
}; };
static void sunxi_rsb_dev_release(struct device *dev) static void sunxi_rsb_dev_release(struct device *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