Commit 685b5f1d 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 Olof Johansson:
 "Our first real batch of fixes this release cycle.  Nothing really
  concerning, and diffstat is a bit inflated due to some DT contents
  moving around on STi platforms.

  There's a collection of them here:

   - A fixup for a build breakage that hits on arm64 allmodconfig in
     QCOM SCM firmware drivers
   - MMC fixes for OMAP that had quite a bit of breakage this merge
     window.
   - Misc build/warning fixes on PXA and OMAP
   - A couple of minor fixes for Beagleboard X15 which is now starting
     to see a few more users in the wild"

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
  ARM: sti: dt: adapt DT to fix probe/bind issues in DRM driver
  ARM: dts: fix omap2+ address translation for pbias
  firmware: qcom: scm: Add function stubs for ARM64
  ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2
  ARM: omap2plus_defconfig: enable GPIO_PCA953X
  ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
  ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late
  ARM: dts: am57xx-beagle-x15: Update Phy supplies
  ARM: pxa: balloon3: Fix build error
  ARM: dts: Fixup model name for HP t410 dts
  ARM: dts: DRA7: fix a typo in ethernet
  ARM: omap2plus_defconfig: make PCF857x built-in
  ARM: dts: Use ti,pbias compatible string for pbias
  ARM: OMAP5: Cleanup options for SoC only build
  ARM: DRA7: Select missing options for SoC only build
  ARM: OMAP2+: board-generic: Remove stale of_irq macros
  ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well
  ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi
  ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410
  ARM: dts: am335x-phycore-som: Fix mpu voltage
  ...
parents 69ea8b85 e46fc90e
...@@ -252,10 +252,10 @@ vio_reg: regulator@1 { ...@@ -252,10 +252,10 @@ vio_reg: regulator@1 {
}; };
vdd1_reg: regulator@2 { vdd1_reg: regulator@2 {
/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ /* VDD_MPU voltage limits 0.95V - 1.325V with +/-4% tolerance */
regulator-name = "vdd_mpu"; regulator-name = "vdd_mpu";
regulator-min-microvolt = <912500>; regulator-min-microvolt = <912500>;
regulator-max-microvolt = <1312500>; regulator-max-microvolt = <1378000>;
regulator-boot-on; regulator-boot-on;
regulator-always-on; regulator-always-on;
}; };
......
...@@ -98,13 +98,6 @@ extcon_usb1: extcon_usb1 { ...@@ -98,13 +98,6 @@ extcon_usb1: extcon_usb1 {
pinctrl-0 = <&extcon_usb1_pins>; pinctrl-0 = <&extcon_usb1_pins>;
}; };
extcon_usb2: extcon_usb2 {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&gpio7 24 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&extcon_usb2_pins>;
};
hdmi0: connector { hdmi0: connector {
compatible = "hdmi-connector"; compatible = "hdmi-connector";
label = "hdmi"; label = "hdmi";
...@@ -326,12 +319,6 @@ extcon_usb1_pins: extcon_usb1_pins { ...@@ -326,12 +319,6 @@ extcon_usb1_pins: extcon_usb1_pins {
>; >;
}; };
extcon_usb2_pins: extcon_usb2_pins {
pinctrl-single,pins = <
0x3e8 (PIN_INPUT_PULLUP | MUX_MODE14) /* uart1_ctsn.gpio7_24 */
>;
};
tpd12s015_pins: pinmux_tpd12s015_pins { tpd12s015_pins: pinmux_tpd12s015_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
0x3b0 (PIN_OUTPUT | MUX_MODE14) /* gpio7_10 CT_CP_HPD */ 0x3b0 (PIN_OUTPUT | MUX_MODE14) /* gpio7_10 CT_CP_HPD */
...@@ -432,7 +419,7 @@ ldo2_reg: ldo2 { ...@@ -432,7 +419,7 @@ ldo2_reg: ldo2 {
}; };
ldo3_reg: ldo3 { ldo3_reg: ldo3 {
/* VDDA_1V8_PHY */ /* VDDA_1V8_PHYA */
regulator-name = "ldo3"; regulator-name = "ldo3";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
...@@ -440,6 +427,15 @@ ldo3_reg: ldo3 { ...@@ -440,6 +427,15 @@ ldo3_reg: ldo3 {
regulator-boot-on; regulator-boot-on;
}; };
ldo4_reg: ldo4 {
/* VDDA_1V8_PHYB */
regulator-name = "ldo4";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
ldo9_reg: ldo9 { ldo9_reg: ldo9 {
/* VDD_RTC */ /* VDD_RTC */
regulator-name = "ldo9"; regulator-name = "ldo9";
...@@ -495,6 +491,14 @@ tps659038_gpio: tps659038_gpio { ...@@ -495,6 +491,14 @@ tps659038_gpio: tps659038_gpio {
gpio-controller; gpio-controller;
#gpio-cells = <2>; #gpio-cells = <2>;
}; };
extcon_usb2: tps659038_usb {
compatible = "ti,palmas-usb-vid";
ti,enable-vbus-detection;
ti,enable-id-detection;
id-gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
};
}; };
tmp102: tmp102@48 { tmp102: tmp102@48 {
...@@ -517,7 +521,8 @@ &i2c3 { ...@@ -517,7 +521,8 @@ &i2c3 {
mcp_rtc: rtc@6f { mcp_rtc: rtc@6f {
compatible = "microchip,mcp7941x"; compatible = "microchip,mcp7941x";
reg = <0x6f>; reg = <0x6f>;
interrupts = <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>; /* IRQ_SYS_1N */ interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
<&dra7_pmx_core 0x424>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mcp79410_pins_default>; pinctrl-0 = <&mcp79410_pins_default>;
...@@ -579,7 +584,6 @@ &mmc1 { ...@@ -579,7 +584,6 @@ &mmc1 {
pinctrl-0 = <&mmc1_pins_default>; pinctrl-0 = <&mmc1_pins_default>;
vmmc-supply = <&ldo1_reg>; vmmc-supply = <&ldo1_reg>;
vmmc_aux-supply = <&vdd_3v3>;
bus-width = <4>; bus-width = <4>;
cd-gpios = <&gpio6 27 0>; /* gpio 219 */ cd-gpios = <&gpio6 27 0>; /* gpio 219 */
}; };
...@@ -623,6 +627,14 @@ &omap_dwc3_2 { ...@@ -623,6 +627,14 @@ &omap_dwc3_2 {
}; };
&usb2 { &usb2 {
/*
* Stand alone usage is peripheral only.
* However, with some resistor modifications
* this port can be used via expansion connectors
* as "host" or "dual-role". If so, provide
* the necessary dr_mode override in the expansion
* board's DT.
*/
dr_mode = "peripheral"; dr_mode = "peripheral";
}; };
...@@ -681,7 +693,7 @@ &dss { ...@@ -681,7 +693,7 @@ &dss {
&hdmi { &hdmi {
status = "ok"; status = "ok";
vdda-supply = <&ldo3_reg>; vdda-supply = <&ldo4_reg>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&hdmi_pins>; pinctrl-0 = <&hdmi_pins>;
......
...@@ -19,10 +19,10 @@ memory { ...@@ -19,10 +19,10 @@ memory {
&cpsw_emac0 { &cpsw_emac0 {
phy_id = <&davinci_mdio>, <0>; phy_id = <&davinci_mdio>, <0>;
phy-mode = "mii"; phy-mode = "rgmii";
}; };
&cpsw_emac1 { &cpsw_emac1 {
phy_id = <&davinci_mdio>, <1>; phy_id = <&davinci_mdio>, <1>;
phy-mode = "mii"; phy-mode = "rgmii";
}; };
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include "dm814x.dtsi" #include "dm814x.dtsi"
/ { / {
model = "DM8148 EVM"; model = "HP t410 Smart Zero Client";
compatible = "hp,t410", "ti,dm8148"; compatible = "hp,t410", "ti,dm8148";
memory { memory {
...@@ -19,10 +19,10 @@ memory { ...@@ -19,10 +19,10 @@ memory {
&cpsw_emac0 { &cpsw_emac0 {
phy_id = <&davinci_mdio>, <0>; phy_id = <&davinci_mdio>, <0>;
phy-mode = "mii"; phy-mode = "rgmii";
}; };
&cpsw_emac1 { &cpsw_emac1 {
phy_id = <&davinci_mdio>, <1>; phy_id = <&davinci_mdio>, <1>;
phy-mode = "mii"; phy-mode = "rgmii";
}; };
...@@ -181,9 +181,9 @@ timer3: timer@42000 { ...@@ -181,9 +181,9 @@ timer3: timer@42000 {
ti,hwmods = "timer3"; ti,hwmods = "timer3";
}; };
control: control@160000 { control: control@140000 {
compatible = "ti,dm814-scm", "simple-bus"; compatible = "ti,dm814-scm", "simple-bus";
reg = <0x160000 0x16d000>; reg = <0x140000 0x16d000>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x160000 0x16d000>; ranges = <0 0x160000 0x16d000>;
...@@ -321,9 +321,9 @@ cpsw_emac1: slave@4a100300 { ...@@ -321,9 +321,9 @@ cpsw_emac1: slave@4a100300 {
mac-address = [ 00 00 00 00 00 00 ]; mac-address = [ 00 00 00 00 00 00 ];
}; };
phy_sel: cpsw-phy-sel@0x48160650 { phy_sel: cpsw-phy-sel@48140650 {
compatible = "ti,am3352-cpsw-phy-sel"; compatible = "ti,am3352-cpsw-phy-sel";
reg= <0x48160650 0x4>; reg= <0x48140650 0x4>;
reg-names = "gmii-sel"; reg-names = "gmii-sel";
}; };
}; };
......
...@@ -120,9 +120,10 @@ scm_conf: scm_conf@0 { ...@@ -120,9 +120,10 @@ scm_conf: scm_conf@0 {
reg = <0x0 0x1400>; reg = <0x0 0x1400>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x0 0x1400>;
pbias_regulator: pbias_regulator { pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap"; compatible = "ti,pbias-dra7", "ti,pbias-omap";
reg = <0xe00 0x4>; reg = <0xe00 0x4>;
syscon = <&scm_conf>; syscon = <&scm_conf>;
pbias_mmc_reg: pbias_mmc_omap5 { pbias_mmc_reg: pbias_mmc_omap5 {
...@@ -1417,7 +1418,7 @@ crossbar_mpu: crossbar@4a002a48 { ...@@ -1417,7 +1418,7 @@ crossbar_mpu: crossbar@4a002a48 {
ti,irqs-safe-map = <0>; ti,irqs-safe-map = <0>;
}; };
mac: ethernet@4a100000 { mac: ethernet@48484000 {
compatible = "ti,dra7-cpsw","ti,cpsw"; compatible = "ti,dra7-cpsw","ti,cpsw";
ti,hwmods = "gmac"; ti,hwmods = "gmac";
clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>; clocks = <&dpll_gmac_ck>, <&gmac_gmii_ref_clk_div>;
......
...@@ -56,6 +56,7 @@ scm_conf: scm_conf@270 { ...@@ -56,6 +56,7 @@ scm_conf: scm_conf@270 {
reg = <0x270 0x240>; reg = <0x270 0x240>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x270 0x240>;
scm_clocks: clocks { scm_clocks: clocks {
#address-cells = <1>; #address-cells = <1>;
...@@ -63,7 +64,7 @@ scm_clocks: clocks { ...@@ -63,7 +64,7 @@ scm_clocks: clocks {
}; };
pbias_regulator: pbias_regulator { pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap"; compatible = "ti,pbias-omap2", "ti,pbias-omap";
reg = <0x230 0x4>; reg = <0x230 0x4>;
syscon = <&scm_conf>; syscon = <&scm_conf>;
pbias_mmc_reg: pbias_mmc_omap2430 { pbias_mmc_reg: pbias_mmc_omap2430 {
......
...@@ -202,7 +202,7 @@ uart3_pins: pinmux_uart3_pins { ...@@ -202,7 +202,7 @@ uart3_pins: pinmux_uart3_pins {
tfp410_pins: pinmux_tfp410_pins { tfp410_pins: pinmux_tfp410_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
0x194 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */ 0x196 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */
>; >;
}; };
......
...@@ -78,12 +78,6 @@ mmc2_pins: pinmux_mmc2_pins { ...@@ -78,12 +78,6 @@ mmc2_pins: pinmux_mmc2_pins {
>; >;
}; };
smsc9221_pins: pinmux_smsc9221_pins {
pinctrl-single,pins = <
0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
>;
};
i2c1_pins: pinmux_i2c1_pins { i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
0x18a (PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */ 0x18a (PIN_INPUT | MUX_MODE0) /* i2c1_scl.i2c1_scl */
......
...@@ -156,6 +156,12 @@ OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ ...@@ -156,6 +156,12 @@ OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */ OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */
>; >;
}; };
smsc9221_pins: pinmux_smsc9221_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */
>;
};
}; };
&omap3_pmx_core2 { &omap3_pmx_core2 {
......
...@@ -113,10 +113,22 @@ omap3_pmx_core: pinmux@30 { ...@@ -113,10 +113,22 @@ omap3_pmx_core: pinmux@30 {
}; };
scm_conf: scm_conf@270 { scm_conf: scm_conf@270 {
compatible = "syscon"; compatible = "syscon", "simple-bus";
reg = <0x270 0x330>; reg = <0x270 0x330>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x270 0x330>;
pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap3", "ti,pbias-omap";
reg = <0x2b0 0x4>;
syscon = <&scm_conf>;
pbias_mmc_reg: pbias_mmc_omap2430 {
regulator-name = "pbias_mmc_omap2430";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
};
};
scm_clocks: clocks { scm_clocks: clocks {
#address-cells = <1>; #address-cells = <1>;
...@@ -202,17 +214,6 @@ sdma: dma-controller@48056000 { ...@@ -202,17 +214,6 @@ sdma: dma-controller@48056000 {
dma-requests = <96>; dma-requests = <96>;
}; };
pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap";
reg = <0x2b0 0x4>;
syscon = <&scm_conf>;
pbias_mmc_reg: pbias_mmc_omap2430 {
regulator-name = "pbias_mmc_omap2430";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3000000>;
};
};
gpio1: gpio@48310000 { gpio1: gpio@48310000 {
compatible = "ti,omap3-gpio"; compatible = "ti,omap3-gpio";
reg = <0x48310000 0x200>; reg = <0x48310000 0x200>;
......
...@@ -196,9 +196,10 @@ omap4_padconf_global: omap4_padconf_global@5a0 { ...@@ -196,9 +196,10 @@ omap4_padconf_global: omap4_padconf_global@5a0 {
reg = <0x5a0 0x170>; reg = <0x5a0 0x170>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x5a0 0x170>;
pbias_regulator: pbias_regulator { pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap"; compatible = "ti,pbias-omap4", "ti,pbias-omap";
reg = <0x60 0x4>; reg = <0x60 0x4>;
syscon = <&omap4_padconf_global>; syscon = <&omap4_padconf_global>;
pbias_mmc_reg: pbias_mmc_omap4 { pbias_mmc_reg: pbias_mmc_omap4 {
......
...@@ -174,8 +174,8 @@ i2c1_pins: pinmux_i2c1_pins { ...@@ -174,8 +174,8 @@ i2c1_pins: pinmux_i2c1_pins {
i2c5_pins: pinmux_i2c5_pins { i2c5_pins: pinmux_i2c5_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
0x184 (PIN_INPUT | MUX_MODE0) /* i2c5_scl */ 0x186 (PIN_INPUT | MUX_MODE0) /* i2c5_scl */
0x186 (PIN_INPUT | MUX_MODE0) /* i2c5_sda */ 0x188 (PIN_INPUT | MUX_MODE0) /* i2c5_sda */
>; >;
}; };
......
...@@ -185,9 +185,10 @@ omap5_padconf_global: omap5_padconf_global@5a0 { ...@@ -185,9 +185,10 @@ omap5_padconf_global: omap5_padconf_global@5a0 {
reg = <0x5a0 0xec>; reg = <0x5a0 0xec>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0x5a0 0xec>;
pbias_regulator: pbias_regulator { pbias_regulator: pbias_regulator {
compatible = "ti,pbias-omap"; compatible = "ti,pbias-omap5", "ti,pbias-omap";
reg = <0x60 0x4>; reg = <0x60 0x4>;
syscon = <&omap5_padconf_global>; syscon = <&omap5_padconf_global>;
pbias_mmc_reg: pbias_mmc_omap5 { pbias_mmc_reg: pbias_mmc_omap5 {
......
...@@ -158,6 +158,7 @@ &emmc { ...@@ -158,6 +158,7 @@ &emmc {
}; };
&hdmi { &hdmi {
ddc-i2c-bus = <&i2c5>;
status = "okay"; status = "okay";
}; };
......
...@@ -103,48 +103,46 @@ sti-tvout@8d08000 { ...@@ -103,48 +103,46 @@ sti-tvout@8d08000 {
<&clk_s_d0_quadfs 0>, <&clk_s_d0_quadfs 0>,
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 0>,
<&clk_s_d2_quadfs 0>; <&clk_s_d2_quadfs 0>;
ranges; };
sti-hdmi@8d04000 { sti-hdmi@8d04000 {
compatible = "st,stih407-hdmi"; compatible = "st,stih407-hdmi";
reg = <0x8d04000 0x1000>; reg = <0x8d04000 0x1000>;
reg-names = "hdmi-reg"; reg-names = "hdmi-reg";
interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>; interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>;
interrupt-names = "irq"; interrupt-names = "irq";
clock-names = "pix", clock-names = "pix",
"tmds", "tmds",
"phy", "phy",
"audio", "audio",
"main_parent", "main_parent",
"aux_parent"; "aux_parent";
clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>, clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
<&clk_s_d2_flexgen CLK_TMDS_HDMI>, <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
<&clk_s_d2_flexgen CLK_REF_HDMIPHY>, <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
<&clk_s_d0_flexgen CLK_PCM_0>, <&clk_s_d0_flexgen CLK_PCM_0>,
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 0>,
<&clk_s_d2_quadfs 1>; <&clk_s_d2_quadfs 1>;
hdmi,hpd-gpio = <&pio5 3>; hdmi,hpd-gpio = <&pio5 3>;
reset-names = "hdmi"; reset-names = "hdmi";
resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>; resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
ddc = <&hdmiddc>; ddc = <&hdmiddc>;
};
};
sti-hda@8d02000 {
sti-hda@8d02000 { compatible = "st,stih407-hda";
compatible = "st,stih407-hda"; reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
reg = <0x8d02000 0x400>, <0x92b0120 0x4>; reg-names = "hda-reg", "video-dacs-ctrl";
reg-names = "hda-reg", "video-dacs-ctrl"; clock-names = "pix",
clock-names = "pix", "hddac",
"hddac", "main_parent",
"main_parent", "aux_parent";
"aux_parent"; clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>, <&clk_s_d2_flexgen CLK_HDDAC>,
<&clk_s_d2_flexgen CLK_HDDAC>, <&clk_s_d2_quadfs 0>,
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 1>;
<&clk_s_d2_quadfs 1>;
};
}; };
}; };
}; };
......
...@@ -178,48 +178,46 @@ sti-tvout@8d08000 { ...@@ -178,48 +178,46 @@ sti-tvout@8d08000 {
<&clk_s_d0_quadfs 0>, <&clk_s_d0_quadfs 0>,
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 0>,
<&clk_s_d2_quadfs 0>; <&clk_s_d2_quadfs 0>;
ranges; };
sti-hdmi@8d04000 { sti-hdmi@8d04000 {
compatible = "st,stih407-hdmi"; compatible = "st,stih407-hdmi";
reg = <0x8d04000 0x1000>; reg = <0x8d04000 0x1000>;
reg-names = "hdmi-reg"; reg-names = "hdmi-reg";
interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>; interrupts = <GIC_SPI 106 IRQ_TYPE_NONE>;
interrupt-names = "irq"; interrupt-names = "irq";
clock-names = "pix", clock-names = "pix",
"tmds", "tmds",
"phy", "phy",
"audio", "audio",
"main_parent", "main_parent",
"aux_parent"; "aux_parent";
clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>, clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
<&clk_s_d2_flexgen CLK_TMDS_HDMI>, <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
<&clk_s_d2_flexgen CLK_REF_HDMIPHY>, <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
<&clk_s_d0_flexgen CLK_PCM_0>, <&clk_s_d0_flexgen CLK_PCM_0>,
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 0>,
<&clk_s_d2_quadfs 1>; <&clk_s_d2_quadfs 1>;
hdmi,hpd-gpio = <&pio5 3>; hdmi,hpd-gpio = <&pio5 3>;
reset-names = "hdmi"; reset-names = "hdmi";
resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>; resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
ddc = <&hdmiddc>; ddc = <&hdmiddc>;
};
};
sti-hda@8d02000 {
sti-hda@8d02000 { compatible = "st,stih407-hda";
compatible = "st,stih407-hda"; reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
reg = <0x8d02000 0x400>, <0x92b0120 0x4>; reg-names = "hda-reg", "video-dacs-ctrl";
reg-names = "hda-reg", "video-dacs-ctrl"; clock-names = "pix",
clock-names = "pix", "hddac",
"hddac", "main_parent",
"main_parent", "aux_parent";
"aux_parent"; clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>, <&clk_s_d2_flexgen CLK_HDDAC>,
<&clk_s_d2_flexgen CLK_HDDAC>, <&clk_s_d2_quadfs 0>,
<&clk_s_d2_quadfs 0>, <&clk_s_d2_quadfs 1>;
<&clk_s_d2_quadfs 1>;
};
}; };
}; };
......
...@@ -240,7 +240,8 @@ CONFIG_SSI_PROTOCOL=m ...@@ -240,7 +240,8 @@ CONFIG_SSI_PROTOCOL=m
CONFIG_PINCTRL_SINGLE=y CONFIG_PINCTRL_SINGLE=y
CONFIG_DEBUG_GPIO=y CONFIG_DEBUG_GPIO=y
CONFIG_GPIO_SYSFS=y CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_PCF857X=m CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=y
CONFIG_GPIO_TWL4030=y CONFIG_GPIO_TWL4030=y
CONFIG_GPIO_PALMAS=y CONFIG_GPIO_PALMAS=y
CONFIG_W1=m CONFIG_W1=m
...@@ -350,6 +351,8 @@ CONFIG_USB_MUSB_HDRC=m ...@@ -350,6 +351,8 @@ CONFIG_USB_MUSB_HDRC=m
CONFIG_USB_MUSB_OMAP2PLUS=m CONFIG_USB_MUSB_OMAP2PLUS=m
CONFIG_USB_MUSB_AM35X=m CONFIG_USB_MUSB_AM35X=m
CONFIG_USB_MUSB_DSPS=m CONFIG_USB_MUSB_DSPS=m
CONFIG_USB_INVENTRA_DMA=y
CONFIG_USB_TI_CPPI41_DMA=y
CONFIG_USB_DWC3=m CONFIG_USB_DWC3=m
CONFIG_USB_TEST=m CONFIG_USB_TEST=m
CONFIG_AM335X_PHY_USB=y CONFIG_AM335X_PHY_USB=y
......
...@@ -44,10 +44,11 @@ config SOC_OMAP5 ...@@ -44,10 +44,11 @@ config SOC_OMAP5
select ARM_CPU_SUSPEND if PM select ARM_CPU_SUSPEND if PM
select ARM_GIC select ARM_GIC
select HAVE_ARM_SCU if SMP select HAVE_ARM_SCU if SMP
select HAVE_ARM_TWD if SMP
select HAVE_ARM_ARCH_TIMER select HAVE_ARM_ARCH_TIMER
select ARM_ERRATA_798181 if SMP select ARM_ERRATA_798181 if SMP
select OMAP_INTERCONNECT
select OMAP_INTERCONNECT_BARRIER select OMAP_INTERCONNECT_BARRIER
select PM_OPP if PM
config SOC_AM33XX config SOC_AM33XX
bool "TI AM33XX" bool "TI AM33XX"
...@@ -70,10 +71,13 @@ config SOC_DRA7XX ...@@ -70,10 +71,13 @@ config SOC_DRA7XX
select ARCH_OMAP2PLUS select ARCH_OMAP2PLUS
select ARM_CPU_SUSPEND if PM select ARM_CPU_SUSPEND if PM
select ARM_GIC select ARM_GIC
select HAVE_ARM_SCU if SMP
select HAVE_ARM_ARCH_TIMER select HAVE_ARM_ARCH_TIMER
select IRQ_CROSSBAR select IRQ_CROSSBAR
select ARM_ERRATA_798181 if SMP select ARM_ERRATA_798181 if SMP
select OMAP_INTERCONNECT
select OMAP_INTERCONNECT_BARRIER select OMAP_INTERCONNECT_BARRIER
select PM_OPP if PM
config ARCH_OMAP2PLUS config ARCH_OMAP2PLUS
bool bool
......
...@@ -20,13 +20,6 @@ ...@@ -20,13 +20,6 @@
#include "common.h" #include "common.h"
#if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
#define intc_of_init NULL
#endif
#ifndef CONFIG_ARCH_OMAP4
#define gic_of_init NULL
#endif
static const struct of_device_id omap_dt_match_table[] __initconst = { static const struct of_device_id omap_dt_match_table[] __initconst = {
{ .compatible = "simple-bus", }, { .compatible = "simple-bus", },
{ .compatible = "ti,omap-infra", }, { .compatible = "ti,omap-infra", },
......
...@@ -653,8 +653,12 @@ void __init dra7xxx_check_revision(void) ...@@ -653,8 +653,12 @@ void __init dra7xxx_check_revision(void)
omap_revision = DRA752_REV_ES1_0; omap_revision = DRA752_REV_ES1_0;
break; break;
case 1: case 1:
default:
omap_revision = DRA752_REV_ES1_1; omap_revision = DRA752_REV_ES1_1;
break;
case 2:
default:
omap_revision = DRA752_REV_ES2_0;
break;
} }
break; break;
...@@ -674,7 +678,7 @@ void __init dra7xxx_check_revision(void) ...@@ -674,7 +678,7 @@ void __init dra7xxx_check_revision(void)
/* Unknown default to latest silicon rev as default*/ /* Unknown default to latest silicon rev as default*/
pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%x)\n", pr_warn("%s: unknown idcode=0x%08x (hawkeye=0x%08x,rev=0x%x)\n",
__func__, idcode, hawkeye, rev); __func__, idcode, hawkeye, rev);
omap_revision = DRA752_REV_ES1_1; omap_revision = DRA752_REV_ES2_0;
} }
sprintf(soc_name, "DRA%03x", omap_rev() >> 16); sprintf(soc_name, "DRA%03x", omap_rev() >> 16);
......
...@@ -676,6 +676,7 @@ void __init am43xx_init_early(void) ...@@ -676,6 +676,7 @@ void __init am43xx_init_early(void)
void __init am43xx_init_late(void) void __init am43xx_init_late(void)
{ {
omap_common_late_init(); omap_common_late_init();
omap2_clk_enable_autoidle_all();
} }
#endif #endif
......
...@@ -901,7 +901,8 @@ static int __init omap_device_late_idle(struct device *dev, void *data) ...@@ -901,7 +901,8 @@ static int __init omap_device_late_idle(struct device *dev, void *data)
if (od->hwmods[i]->flags & HWMOD_INIT_NO_IDLE) if (od->hwmods[i]->flags & HWMOD_INIT_NO_IDLE)
return 0; return 0;
if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER) { if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER &&
od->_driver_status != BUS_NOTIFY_BIND_DRIVER) {
if (od->_state == OMAP_DEVICE_STATE_ENABLED) { if (od->_state == OMAP_DEVICE_STATE_ENABLED) {
dev_warn(dev, "%s: enabled but no driver. Idling\n", dev_warn(dev, "%s: enabled but no driver. Idling\n",
__func__); __func__);
......
...@@ -103,7 +103,8 @@ static inline void enable_omap3630_toggle_l2_on_restore(void) { } ...@@ -103,7 +103,8 @@ static inline void enable_omap3630_toggle_l2_on_restore(void) { }
#define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD (1 << 0) #define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD (1 << 0)
#define PM_OMAP4_CPU_OSWR_DISABLE (1 << 1) #define PM_OMAP4_CPU_OSWR_DISABLE (1 << 1)
#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP4) #if defined(CONFIG_PM) && (defined(CONFIG_ARCH_OMAP4) ||\
defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX))
extern u16 pm44xx_errata; extern u16 pm44xx_errata;
#define IS_PM44XX_ERRATUM(id) (pm44xx_errata & (id)) #define IS_PM44XX_ERRATUM(id) (pm44xx_errata & (id))
#else #else
......
...@@ -469,6 +469,8 @@ IS_OMAP_TYPE(3430, 0x3430) ...@@ -469,6 +469,8 @@ IS_OMAP_TYPE(3430, 0x3430)
#define DRA7XX_CLASS 0x07000000 #define DRA7XX_CLASS 0x07000000
#define DRA752_REV_ES1_0 (DRA7XX_CLASS | (0x52 << 16) | (0x10 << 8)) #define DRA752_REV_ES1_0 (DRA7XX_CLASS | (0x52 << 16) | (0x10 << 8))
#define DRA752_REV_ES1_1 (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8)) #define DRA752_REV_ES1_1 (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8))
#define DRA752_REV_ES2_0 (DRA7XX_CLASS | (0x52 << 16) | (0x20 << 8))
#define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
#define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8)) #define DRA722_REV_ES1_0 (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
void omap2xxx_check_revision(void); void omap2xxx_check_revision(void);
......
...@@ -297,12 +297,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer, ...@@ -297,12 +297,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
if (IS_ERR(src)) if (IS_ERR(src))
return PTR_ERR(src); return PTR_ERR(src);
r = clk_set_parent(timer->fclk, src); WARN(clk_set_parent(timer->fclk, src) < 0,
if (r < 0) { "Cannot set timer parent clock, no PLL clock driver?");
pr_warn("%s: %s cannot set source\n", __func__, oh->name);
clk_put(src);
return r;
}
clk_put(src); clk_put(src);
......
...@@ -300,7 +300,7 @@ static void __init omap3_vc_init_pmic_signaling(struct voltagedomain *voltdm) ...@@ -300,7 +300,7 @@ static void __init omap3_vc_init_pmic_signaling(struct voltagedomain *voltdm)
val = voltdm->read(OMAP3_PRM_POLCTRL_OFFSET); val = voltdm->read(OMAP3_PRM_POLCTRL_OFFSET);
if (!(val & OMAP3430_PRM_POLCTRL_CLKREQ_POL) || if (!(val & OMAP3430_PRM_POLCTRL_CLKREQ_POL) ||
(val & OMAP3430_PRM_POLCTRL_CLKREQ_POL)) { (val & OMAP3430_PRM_POLCTRL_OFFMODE_POL)) {
val |= OMAP3430_PRM_POLCTRL_CLKREQ_POL; val |= OMAP3430_PRM_POLCTRL_CLKREQ_POL;
val &= ~OMAP3430_PRM_POLCTRL_OFFMODE_POL; val &= ~OMAP3430_PRM_POLCTRL_OFFMODE_POL;
pr_debug("PM: fixing sys_clkreq and sys_off_mode polarity to 0x%x\n", pr_debug("PM: fixing sys_clkreq and sys_off_mode polarity to 0x%x\n",
......
...@@ -502,7 +502,7 @@ static void balloon3_irq_handler(struct irq_desc *desc) ...@@ -502,7 +502,7 @@ static void balloon3_irq_handler(struct irq_desc *desc)
balloon3_irq_enabled; balloon3_irq_enabled;
do { do {
struct irq_data *d = irq_desc_get_irq_data(desc); struct irq_data *d = irq_desc_get_irq_data(desc);
struct irq_chip *chip = irq_data_get_chip(d); struct irq_chip *chip = irq_desc_get_chip(desc);
unsigned int irq; unsigned int irq;
/* clear useless edge notification */ /* clear useless edge notification */
......
...@@ -43,6 +43,13 @@ ...@@ -43,6 +43,13 @@
* 0xf6200000..0xf6201000 * 0xf6200000..0xf6201000
*/ */
/*
* DFI Bus for NAND, PXA3xx only
*/
#define NAND_PHYS 0x43100000
#define NAND_VIRT IOMEM(0xf6300000)
#define NAND_SIZE 0x00100000
/* /*
* Internal Memory Controller (PXA27x and later) * Internal Memory Controller (PXA27x and later)
*/ */
......
...@@ -47,6 +47,13 @@ extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *, unsigned int)); ...@@ -47,6 +47,13 @@ extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *, unsigned int));
#define ISRAM_START 0x5c000000 #define ISRAM_START 0x5c000000
#define ISRAM_SIZE SZ_256K #define ISRAM_SIZE SZ_256K
/*
* NAND NFC: DFI bus arbitration subset
*/
#define NDCR (*(volatile u32 __iomem*)(NAND_VIRT + 0))
#define NDCR_ND_ARB_EN (1 << 12)
#define NDCR_ND_ARB_CNTL (1 << 19)
static void __iomem *sram; static void __iomem *sram;
static unsigned long wakeup_src; static unsigned long wakeup_src;
...@@ -362,7 +369,12 @@ static struct map_desc pxa3xx_io_desc[] __initdata = { ...@@ -362,7 +369,12 @@ static struct map_desc pxa3xx_io_desc[] __initdata = {
.pfn = __phys_to_pfn(PXA3XX_SMEMC_BASE), .pfn = __phys_to_pfn(PXA3XX_SMEMC_BASE),
.length = SMEMC_SIZE, .length = SMEMC_SIZE,
.type = MT_DEVICE .type = MT_DEVICE
} }, {
.virtual = (unsigned long)NAND_VIRT,
.pfn = __phys_to_pfn(NAND_PHYS),
.length = NAND_SIZE,
.type = MT_DEVICE
},
}; };
void __init pxa3xx_map_io(void) void __init pxa3xx_map_io(void)
...@@ -419,6 +431,13 @@ static int __init pxa3xx_init(void) ...@@ -419,6 +431,13 @@ static int __init pxa3xx_init(void)
*/ */
ASCR &= ~(ASCR_RDH | ASCR_D1S | ASCR_D2S | ASCR_D3S); ASCR &= ~(ASCR_RDH | ASCR_D1S | ASCR_D2S | ASCR_D3S);
/*
* Disable DFI bus arbitration, to prevent a system bus lock if
* somebody disables the NAND clock (unused clock) while this
* bit remains set.
*/
NDCR = (NDCR & ~NDCR_ND_ARB_EN) | NDCR_ND_ARB_CNTL;
if ((ret = pxa_init_dma(IRQ_DMA, 32))) if ((ret = pxa_init_dma(IRQ_DMA, 32)))
return ret; return ret;
......
...@@ -107,7 +107,6 @@ static const struct of_device_id pxa_ssp_of_ids[] = { ...@@ -107,7 +107,6 @@ static const struct of_device_id pxa_ssp_of_ids[] = {
{ .compatible = "mvrl,pxa168-ssp", .data = (void *) PXA168_SSP }, { .compatible = "mvrl,pxa168-ssp", .data = (void *) PXA168_SSP },
{ .compatible = "mrvl,pxa910-ssp", .data = (void *) PXA910_SSP }, { .compatible = "mrvl,pxa910-ssp", .data = (void *) PXA910_SSP },
{ .compatible = "mrvl,ce4100-ssp", .data = (void *) CE4100_SSP }, { .compatible = "mrvl,ce4100-ssp", .data = (void *) CE4100_SSP },
{ .compatible = "mrvl,lpss-ssp", .data = (void *) LPSS_SSP },
{ }, { },
}; };
MODULE_DEVICE_TABLE(of, pxa_ssp_of_ids); MODULE_DEVICE_TABLE(of, pxa_ssp_of_ids);
......
...@@ -139,6 +139,14 @@ config QCOM_SCM ...@@ -139,6 +139,14 @@ config QCOM_SCM
bool bool
depends on ARM || ARM64 depends on ARM || ARM64
config QCOM_SCM_32
def_bool y
depends on QCOM_SCM && ARM
config QCOM_SCM_64
def_bool y
depends on QCOM_SCM && ARM64
source "drivers/firmware/broadcom/Kconfig" source "drivers/firmware/broadcom/Kconfig"
source "drivers/firmware/google/Kconfig" source "drivers/firmware/google/Kconfig"
source "drivers/firmware/efi/Kconfig" source "drivers/firmware/efi/Kconfig"
......
...@@ -13,7 +13,8 @@ obj-$(CONFIG_ISCSI_IBFT_FIND) += iscsi_ibft_find.o ...@@ -13,7 +13,8 @@ obj-$(CONFIG_ISCSI_IBFT_FIND) += iscsi_ibft_find.o
obj-$(CONFIG_ISCSI_IBFT) += iscsi_ibft.o obj-$(CONFIG_ISCSI_IBFT) += iscsi_ibft.o
obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o
obj-$(CONFIG_QCOM_SCM) += qcom_scm.o obj-$(CONFIG_QCOM_SCM) += qcom_scm.o
obj-$(CONFIG_QCOM_SCM) += qcom_scm-32.o obj-$(CONFIG_QCOM_SCM_64) += qcom_scm-64.o
obj-$(CONFIG_QCOM_SCM_32) += qcom_scm-32.o
CFLAGS_qcom_scm-32.o :=$(call as-instr,.arch_extension sec,-DREQUIRES_SEC=1) CFLAGS_qcom_scm-32.o :=$(call as-instr,.arch_extension sec,-DREQUIRES_SEC=1)
obj-y += broadcom/ obj-y += broadcom/
......
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/io.h>
#include <linux/errno.h>
#include <linux/qcom_scm.h>
/**
* qcom_scm_set_cold_boot_addr() - Set the cold boot address for cpus
* @entry: Entry point function for the cpus
* @cpus: The cpumask of cpus that will use the entry point
*
* Set the cold boot address of the cpus. Any cpu outside the supported
* range would be removed from the cpu present mask.
*/
int __qcom_scm_set_cold_boot_addr(void *entry, const cpumask_t *cpus)
{
return -ENOTSUPP;
}
/**
* qcom_scm_set_warm_boot_addr() - Set the warm boot address for cpus
* @entry: Entry point function for the cpus
* @cpus: The cpumask of cpus that will use the entry point
*
* Set the Linux entry point for the SCM to transfer control to when coming
* out of a power down. CPU power down may be executed on cpuidle or hotplug.
*/
int __qcom_scm_set_warm_boot_addr(void *entry, const cpumask_t *cpus)
{
return -ENOTSUPP;
}
/**
* qcom_scm_cpu_power_down() - Power down the cpu
* @flags - Flags to flush cache
*
* This is an end point to power down cpu. If there was a pending interrupt,
* the control would return from this function, otherwise, the cpu jumps to the
* warm boot entry point set for this cpu upon reset.
*/
void __qcom_scm_cpu_power_down(u32 flags)
{
}
int __qcom_scm_is_call_available(u32 svc_id, u32 cmd_id)
{
return -ENOTSUPP;
}
int __qcom_scm_hdcp_req(struct qcom_scm_hdcp_req *req, u32 req_cnt, u32 *resp)
{
return -ENOTSUPP;
}
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