提交 545ea16f 编写于 作者: L 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:
 "Here is another set of bugfixes for ARM SoCs, mostly harmless:

   - a boot regression fix on ux500

   - PCIe interrupts on NXP i.MX7 and on Marvell Armada 7K/8K were wired
     up wrong, in different ways

   - Armada XP support for large memory never worked

   - the socfpga reset controller now builds on 64-bit

   - minor device tree corrections on gemini, mvebu, r-pi 3, rockchip
     and at91"

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: ux500: Fix regression while init PM domains
  ARM: dts: fix PCLK name on Gemini and MOXA ART
  arm64: dts: rockchip: fix typo in iommu nodes
  arm64: dts: rockchip: correct vqmmc voltage for rk3399 platforms
  ARM: dts: imx7d: Invert legacy PCI irq mapping
  bus: mbus: fix window size calculation for 4GB windows
  ARM: dts: at91: sama5d2: add ADC hw trigger edge type
  ARM: dts: at91: sama5d2_xplained: enable ADTRG pin
  ARM: dts: at91: at91-sama5d27_som1: fix PHY ID
  ARM: dts: bcm283x: Fix console path on RPi3
  reset: socfpga: fix for 64-bit compilation
  ARM: dts: Fix I2C repeated start issue on Armada-38x
  arm64: dts: marvell: fix interrupt-map property for Armada CP110 PCIe controller
  arm64: dts: salvator-common: add 12V regulator to backlight
  ARM: dts: sun6i: Fix endpoint IDs in second display pipeline
  arm64: allwinner: a64: pine64: Use dcdc1 regulator for mmc0
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
}; };
i2c0: i2c@11000 { i2c0: i2c@11000 {
compatible = "marvell,mv64xxx-i2c"; compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
reg = <0x11000 0x20>; reg = <0x11000 0x20>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -189,7 +189,7 @@ ...@@ -189,7 +189,7 @@
}; };
i2c1: i2c@11100 { i2c1: i2c@11100 {
compatible = "marvell,mv64xxx-i2c"; compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
reg = <0x11100 0x20>; reg = <0x11100 0x20>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -67,8 +67,8 @@ ...@@ -67,8 +67,8 @@
pinctrl-0 = <&pinctrl_macb0_default>; pinctrl-0 = <&pinctrl_macb0_default>;
phy-mode = "rmii"; phy-mode = "rmii";
ethernet-phy@1 { ethernet-phy@0 {
reg = <0x1>; reg = <0x0>;
interrupt-parent = <&pioA>; interrupt-parent = <&pioA>;
interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>; interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default"; pinctrl-names = "default";
......
...@@ -309,7 +309,7 @@ ...@@ -309,7 +309,7 @@
vddana-supply = <&vdd_3v3_lp_reg>; vddana-supply = <&vdd_3v3_lp_reg>;
vref-supply = <&vdd_3v3_lp_reg>; vref-supply = <&vdd_3v3_lp_reg>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adc_default>; pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
status = "okay"; status = "okay";
}; };
...@@ -340,6 +340,20 @@ ...@@ -340,6 +340,20 @@
bias-disable; bias-disable;
}; };
/*
* The ADTRG pin can work on any edge type.
* In here it's being pulled up, so need to
* connect it to ground to get an edge e.g.
* Trigger can be configured on falling, rise
* or any edge, and the pull-up can be changed
* to pull-down or left floating according to
* needs.
*/
pinctrl_adtrg_default: adtrg_default {
pinmux = <PIN_PD31__ADTRG>;
bias-pull-up;
};
pinctrl_charger_chglev: charger_chglev { pinctrl_charger_chglev: charger_chglev {
pinmux = <PIN_PA12__GPIO>; pinmux = <PIN_PA12__GPIO>;
bias-disable; bias-disable;
......
...@@ -18,12 +18,9 @@ ...@@ -18,12 +18,9 @@
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
model = "Raspberry Pi Zero W"; model = "Raspberry Pi Zero W";
/* Needed by firmware to properly init UARTs */ chosen {
aliases { /* 8250 auxiliary UART instead of pl011 */
uart0 = "/soc/serial@7e201000"; stdout-path = "serial1:115200n8";
uart1 = "/soc/serial@7e215040";
serial0 = "/soc/serial@7e201000";
serial1 = "/soc/serial@7e215040";
}; };
leds { leds {
......
...@@ -8,6 +8,11 @@ ...@@ -8,6 +8,11 @@
compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
model = "Raspberry Pi 3 Model B"; model = "Raspberry Pi 3 Model B";
chosen {
/* 8250 auxiliary UART instead of pl011 */
stdout-path = "serial1:115200n8";
};
memory { memory {
reg = <0 0x40000000>; reg = <0 0x40000000>;
}; };
......
...@@ -20,8 +20,13 @@ ...@@ -20,8 +20,13 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
chosen { chosen {
bootargs = "earlyprintk console=ttyAMA0"; stdout-path = "serial0:115200n8";
}; };
thermal-zones { thermal-zones {
......
...@@ -145,11 +145,12 @@ ...@@ -145,11 +145,12 @@
}; };
watchdog@41000000 { watchdog@41000000 {
compatible = "cortina,gemini-watchdog"; compatible = "cortina,gemini-watchdog", "faraday,ftwdt010";
reg = <0x41000000 0x1000>; reg = <0x41000000 0x1000>;
interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
resets = <&syscon GEMINI_RESET_WDOG>; resets = <&syscon GEMINI_RESET_WDOG>;
clocks = <&syscon GEMINI_CLK_APB>; clocks = <&syscon GEMINI_CLK_APB>;
clock-names = "PCLK";
}; };
uart0: serial@42000000 { uart0: serial@42000000 {
......
...@@ -144,10 +144,10 @@ ...@@ -144,10 +144,10 @@
interrupt-names = "msi"; interrupt-names = "msi";
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>; interrupt-map-mask = <0 0 0 0x7>;
interrupt-map = <0 0 0 1 &intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, interrupt-map = <0 0 0 1 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 2 &intc GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 2 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 3 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 3 &intc GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
<0 0 0 4 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; <0 0 0 4 &intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX7D_PCIE_CTRL_ROOT_CLK>, clocks = <&clks IMX7D_PCIE_CTRL_ROOT_CLK>,
<&clks IMX7D_PLL_ENET_MAIN_100M_CLK>, <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>,
<&clks IMX7D_PCIE_PHY_ROOT_CLK>; <&clks IMX7D_PCIE_PHY_ROOT_CLK>;
......
...@@ -87,9 +87,10 @@ ...@@ -87,9 +87,10 @@
}; };
watchdog: watchdog@98500000 { watchdog: watchdog@98500000 {
compatible = "moxa,moxart-watchdog"; compatible = "moxa,moxart-watchdog", "faraday,ftwdt010";
reg = <0x98500000 0x10>; reg = <0x98500000 0x10>;
clocks = <&clk_apb>; clocks = <&clk_apb>;
clock-names = "PCLK";
}; };
sdhci: sdhci@98e00000 { sdhci: sdhci@98e00000 {
......
...@@ -1430,6 +1430,7 @@ ...@@ -1430,6 +1430,7 @@
atmel,min-sample-rate-hz = <200000>; atmel,min-sample-rate-hz = <200000>;
atmel,max-sample-rate-hz = <20000000>; atmel,max-sample-rate-hz = <20000000>;
atmel,startup-time-ms = <4>; atmel,startup-time-ms = <4>;
atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -311,8 +311,8 @@ ...@@ -311,8 +311,8 @@
#size-cells = <0>; #size-cells = <0>;
reg = <0>; reg = <0>;
tcon1_in_drc1: endpoint@0 { tcon1_in_drc1: endpoint@1 {
reg = <0>; reg = <1>;
remote-endpoint = <&drc1_out_tcon1>; remote-endpoint = <&drc1_out_tcon1>;
}; };
}; };
...@@ -1012,8 +1012,8 @@ ...@@ -1012,8 +1012,8 @@
#size-cells = <0>; #size-cells = <0>;
reg = <1>; reg = <1>;
be1_out_drc1: endpoint@0 { be1_out_drc1: endpoint@1 {
reg = <0>; reg = <1>;
remote-endpoint = <&drc1_in_be1>; remote-endpoint = <&drc1_in_be1>;
}; };
}; };
...@@ -1042,8 +1042,8 @@ ...@@ -1042,8 +1042,8 @@
#size-cells = <0>; #size-cells = <0>;
reg = <0>; reg = <0>;
drc1_in_be1: endpoint@0 { drc1_in_be1: endpoint@1 {
reg = <0>; reg = <1>;
remote-endpoint = <&be1_out_drc1>; remote-endpoint = <&be1_out_drc1>;
}; };
}; };
...@@ -1053,8 +1053,8 @@ ...@@ -1053,8 +1053,8 @@
#size-cells = <0>; #size-cells = <0>;
reg = <1>; reg = <1>;
drc1_out_tcon1: endpoint@0 { drc1_out_tcon1: endpoint@1 {
reg = <0>; reg = <1>;
remote-endpoint = <&tcon1_in_drc1>; remote-endpoint = <&tcon1_in_drc1>;
}; };
}; };
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include "db8500-regs.h" #include "db8500-regs.h"
#include "pm_domains.h"
static int __init ux500_l2x0_unlock(void) static int __init ux500_l2x0_unlock(void)
{ {
...@@ -157,6 +158,9 @@ static const struct of_device_id u8500_local_bus_nodes[] = { ...@@ -157,6 +158,9 @@ static const struct of_device_id u8500_local_bus_nodes[] = {
static void __init u8500_init_machine(void) static void __init u8500_init_machine(void)
{ {
/* Initialize ux500 power domains */
ux500_pm_domains_init();
/* automatically probe child nodes of dbx5x0 devices */ /* automatically probe child nodes of dbx5x0 devices */
if (of_machine_is_compatible("st-ericsson,u8540")) if (of_machine_is_compatible("st-ericsson,u8540"))
of_platform_populate(NULL, u8500_local_bus_nodes, of_platform_populate(NULL, u8500_local_bus_nodes,
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include <linux/of_address.h> #include <linux/of_address.h>
#include "db8500-regs.h" #include "db8500-regs.h"
#include "pm_domains.h"
/* ARM WFI Standby signal register */ /* ARM WFI Standby signal register */
#define PRCM_ARM_WFI_STANDBY (prcmu_base + 0x130) #define PRCM_ARM_WFI_STANDBY (prcmu_base + 0x130)
...@@ -203,7 +202,4 @@ void __init ux500_pm_init(u32 phy_base, u32 size) ...@@ -203,7 +202,4 @@ void __init ux500_pm_init(u32 phy_base, u32 size)
/* Set up ux500 suspend callbacks. */ /* Set up ux500 suspend callbacks. */
suspend_set_ops(UX500_SUSPEND_OPS); suspend_set_ops(UX500_SUSPEND_OPS);
/* Initialize ux500 power domains */
ux500_pm_domains_init();
} }
...@@ -61,13 +61,6 @@ ...@@ -61,13 +61,6 @@
chosen { chosen {
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
}; };
reg_vcc3v3: vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
}; };
&ehci0 { &ehci0 {
...@@ -91,7 +84,7 @@ ...@@ -91,7 +84,7 @@
&mmc0 { &mmc0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>; pinctrl-0 = <&mmc0_pins>;
vmmc-supply = <&reg_vcc3v3>; vmmc-supply = <&reg_dcdc1>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
cd-inverted; cd-inverted;
disable-wp; disable-wp;
......
...@@ -336,7 +336,7 @@ ...@@ -336,7 +336,7 @@
/* non-prefetchable memory */ /* non-prefetchable memory */
0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>; 0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>;
interrupt-map-mask = <0 0 0 0>; interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &cpm_icu 0 ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; interrupt-map = <0 0 0 0 &cpm_icu ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>;
num-lanes = <1>; num-lanes = <1>;
clocks = <&cpm_clk 1 13>; clocks = <&cpm_clk 1 13>;
...@@ -362,7 +362,7 @@ ...@@ -362,7 +362,7 @@
/* non-prefetchable memory */ /* non-prefetchable memory */
0x82000000 0 0xf7000000 0 0xf7000000 0 0xf00000>; 0x82000000 0 0xf7000000 0 0xf7000000 0 0xf00000>;
interrupt-map-mask = <0 0 0 0>; interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &cpm_icu 0 ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; interrupt-map = <0 0 0 0 &cpm_icu ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>;
num-lanes = <1>; num-lanes = <1>;
...@@ -389,7 +389,7 @@ ...@@ -389,7 +389,7 @@
/* non-prefetchable memory */ /* non-prefetchable memory */
0x82000000 0 0xf8000000 0 0xf8000000 0 0xf00000>; 0x82000000 0 0xf8000000 0 0xf8000000 0 0xf00000>;
interrupt-map-mask = <0 0 0 0>; interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &cpm_icu 0 ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; interrupt-map = <0 0 0 0 &cpm_icu ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>;
num-lanes = <1>; num-lanes = <1>;
......
...@@ -335,7 +335,7 @@ ...@@ -335,7 +335,7 @@
/* non-prefetchable memory */ /* non-prefetchable memory */
0x82000000 0 0xfa000000 0 0xfa000000 0 0xf00000>; 0x82000000 0 0xfa000000 0 0xfa000000 0 0xf00000>;
interrupt-map-mask = <0 0 0 0>; interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &cps_icu 0 ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; interrupt-map = <0 0 0 0 &cps_icu ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>;
num-lanes = <1>; num-lanes = <1>;
clocks = <&cps_clk 1 13>; clocks = <&cps_clk 1 13>;
...@@ -361,7 +361,7 @@ ...@@ -361,7 +361,7 @@
/* non-prefetchable memory */ /* non-prefetchable memory */
0x82000000 0 0xfb000000 0 0xfb000000 0 0xf00000>; 0x82000000 0 0xfb000000 0 0xfb000000 0 0xf00000>;
interrupt-map-mask = <0 0 0 0>; interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &cps_icu 0 ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; interrupt-map = <0 0 0 0 &cps_icu ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>;
num-lanes = <1>; num-lanes = <1>;
...@@ -388,7 +388,7 @@ ...@@ -388,7 +388,7 @@
/* non-prefetchable memory */ /* non-prefetchable memory */
0x82000000 0 0xfc000000 0 0xfc000000 0 0xf00000>; 0x82000000 0 0xfc000000 0 0xfc000000 0 0xf00000>;
interrupt-map-mask = <0 0 0 0>; interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0 0 0 0 &cps_icu 0 ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; interrupt-map = <0 0 0 0 &cps_icu ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>;
num-lanes = <1>; num-lanes = <1>;
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
brightness-levels = <256 128 64 16 8 4 0>; brightness-levels = <256 128 64 16 8 4 0>;
default-brightness-level = <6>; default-brightness-level = <6>;
power-supply = <&reg_12v>;
enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
}; };
...@@ -83,6 +84,15 @@ ...@@ -83,6 +84,15 @@
regulator-always-on; regulator-always-on;
}; };
reg_12v: regulator2 {
compatible = "regulator-fixed";
regulator-name = "fixed-12V";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
regulator-boot-on;
regulator-always-on;
};
rsnd_ak4613: sound { rsnd_ak4613: sound {
compatible = "simple-audio-card"; compatible = "simple-audio-card";
......
...@@ -582,7 +582,7 @@ ...@@ -582,7 +582,7 @@
vop_mmu: iommu@ff373f00 { vop_mmu: iommu@ff373f00 {
compatible = "rockchip,iommu"; compatible = "rockchip,iommu";
reg = <0x0 0xff373f00 0x0 0x100>; reg = <0x0 0xff373f00 0x0 0x100>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "vop_mmu"; interrupt-names = "vop_mmu";
#iommu-cells = <0>; #iommu-cells = <0>;
status = "disabled"; status = "disabled";
......
...@@ -740,7 +740,7 @@ ...@@ -740,7 +740,7 @@
iep_mmu: iommu@ff900800 { iep_mmu: iommu@ff900800 {
compatible = "rockchip,iommu"; compatible = "rockchip,iommu";
reg = <0x0 0xff900800 0x0 0x100>; reg = <0x0 0xff900800 0x0 0x100>;
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";
......
...@@ -371,10 +371,10 @@ ...@@ -371,10 +371,10 @@
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3000000>;
regulator-state-mem { regulator-state-mem {
regulator-on-in-suspend; regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>; regulator-suspend-microvolt = <3000000>;
}; };
}; };
......
...@@ -325,12 +325,12 @@ ...@@ -325,12 +325,12 @@
vcc_sd: LDO_REG4 { vcc_sd: LDO_REG4 {
regulator-name = "vcc_sd"; regulator-name = "vcc_sd";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3000000>;
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-state-mem { regulator-state-mem {
regulator-on-in-suspend; regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>; regulator-suspend-microvolt = <3000000>;
}; };
}; };
......
...@@ -315,10 +315,10 @@ ...@@ -315,10 +315,10 @@
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>; regulator-max-microvolt = <3000000>;
regulator-state-mem { regulator-state-mem {
regulator-on-in-suspend; regulator-on-in-suspend;
regulator-suspend-microvolt = <3300000>; regulator-suspend-microvolt = <3000000>;
}; };
}; };
......
...@@ -720,7 +720,7 @@ mvebu_mbus_default_setup_cpu_target(struct mvebu_mbus_state *mbus) ...@@ -720,7 +720,7 @@ mvebu_mbus_default_setup_cpu_target(struct mvebu_mbus_state *mbus)
if (mbus->hw_io_coherency) if (mbus->hw_io_coherency)
w->mbus_attr |= ATTR_HW_COHERENCY; w->mbus_attr |= ATTR_HW_COHERENCY;
w->base = base & DDR_BASE_CS_LOW_MASK; w->base = base & DDR_BASE_CS_LOW_MASK;
w->size = (size | ~DDR_SIZE_MASK) + 1; w->size = (u64)(size | ~DDR_SIZE_MASK) + 1;
} }
} }
mvebu_mbus_dram_info.num_cs = cs; mvebu_mbus_dram_info.num_cs = cs;
......
...@@ -40,8 +40,9 @@ static int socfpga_reset_assert(struct reset_controller_dev *rcdev, ...@@ -40,8 +40,9 @@ static int socfpga_reset_assert(struct reset_controller_dev *rcdev,
struct socfpga_reset_data *data = container_of(rcdev, struct socfpga_reset_data *data = container_of(rcdev,
struct socfpga_reset_data, struct socfpga_reset_data,
rcdev); rcdev);
int bank = id / BITS_PER_LONG; int reg_width = sizeof(u32);
int offset = id % BITS_PER_LONG; int bank = id / (reg_width * BITS_PER_BYTE);
int offset = id % (reg_width * BITS_PER_BYTE);
unsigned long flags; unsigned long flags;
u32 reg; u32 reg;
...@@ -61,8 +62,9 @@ static int socfpga_reset_deassert(struct reset_controller_dev *rcdev, ...@@ -61,8 +62,9 @@ static int socfpga_reset_deassert(struct reset_controller_dev *rcdev,
struct socfpga_reset_data, struct socfpga_reset_data,
rcdev); rcdev);
int bank = id / BITS_PER_LONG; int reg_width = sizeof(u32);
int offset = id % BITS_PER_LONG; int bank = id / (reg_width * BITS_PER_BYTE);
int offset = id % (reg_width * BITS_PER_BYTE);
unsigned long flags; unsigned long flags;
u32 reg; u32 reg;
...@@ -81,8 +83,9 @@ static int socfpga_reset_status(struct reset_controller_dev *rcdev, ...@@ -81,8 +83,9 @@ static int socfpga_reset_status(struct reset_controller_dev *rcdev,
{ {
struct socfpga_reset_data *data = container_of(rcdev, struct socfpga_reset_data *data = container_of(rcdev,
struct socfpga_reset_data, rcdev); struct socfpga_reset_data, rcdev);
int bank = id / BITS_PER_LONG; int reg_width = sizeof(u32);
int offset = id % BITS_PER_LONG; int bank = id / (reg_width * BITS_PER_BYTE);
int offset = id % (reg_width * BITS_PER_BYTE);
u32 reg; u32 reg;
reg = readl(data->membase + (bank * BANK_INCREMENT)); reg = readl(data->membase + (bank * BANK_INCREMENT));
...@@ -132,7 +135,7 @@ static int socfpga_reset_probe(struct platform_device *pdev) ...@@ -132,7 +135,7 @@ static int socfpga_reset_probe(struct platform_device *pdev)
spin_lock_init(&data->lock); spin_lock_init(&data->lock);
data->rcdev.owner = THIS_MODULE; data->rcdev.owner = THIS_MODULE;
data->rcdev.nr_resets = NR_BANKS * BITS_PER_LONG; data->rcdev.nr_resets = NR_BANKS * (sizeof(u32) * BITS_PER_BYTE);
data->rcdev.ops = &socfpga_reset_ops; data->rcdev.ops = &socfpga_reset_ops;
data->rcdev.of_node = pdev->dev.of_node; data->rcdev.of_node = pdev->dev.of_node;
......
...@@ -31,8 +31,8 @@ struct mbus_dram_target_info ...@@ -31,8 +31,8 @@ struct mbus_dram_target_info
struct mbus_dram_window { struct mbus_dram_window {
u8 cs_index; u8 cs_index;
u8 mbus_attr; u8 mbus_attr;
u32 base; u64 base;
u32 size; u64 size;
} cs[4]; } cs[4];
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册