mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 15:34:48 +08:00
5910de9e2d
The Nomadik GPIO controller now relies on Nomadik pinctrl, however the pinctrl driver is not currently started by any ux500 platform. This is requred or GPIOs do not work at all. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
506 lines
12 KiB
Plaintext
506 lines
12 KiB
Plaintext
/*
|
|
* Copyright 2012 Linaro Ltd
|
|
*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*/
|
|
|
|
/include/ "skeleton.dtsi"
|
|
|
|
/ {
|
|
soc-u9500 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "stericsson,db8500";
|
|
interrupt-parent = <&intc>;
|
|
ranges;
|
|
|
|
intc: interrupt-controller@a0411000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
#interrupt-cells = <3>;
|
|
#address-cells = <1>;
|
|
interrupt-controller;
|
|
reg = <0xa0411000 0x1000>,
|
|
<0xa0410100 0x100>;
|
|
};
|
|
|
|
L2: l2-cache {
|
|
compatible = "arm,pl310-cache";
|
|
reg = <0xa0412000 0x1000>;
|
|
interrupts = <0 13 4>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
};
|
|
|
|
pmu {
|
|
compatible = "arm,cortex-a9-pmu";
|
|
interrupts = <0 7 0x4>;
|
|
};
|
|
|
|
timer@a0410600 {
|
|
compatible = "arm,cortex-a9-twd-timer";
|
|
reg = <0xa0410600 0x20>;
|
|
interrupts = <1 13 0x304>;
|
|
};
|
|
|
|
rtc@80154000 {
|
|
compatible = "stericsson,db8500-rtc";
|
|
reg = <0x80154000 0x1000>;
|
|
interrupts = <0 18 0x4>;
|
|
};
|
|
|
|
gpio0: gpio@8012e000 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8012e000 0x80>;
|
|
interrupts = <0 119 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <0>;
|
|
};
|
|
|
|
gpio1: gpio@8012e080 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8012e080 0x80>;
|
|
interrupts = <0 120 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <1>;
|
|
};
|
|
|
|
gpio2: gpio@8000e000 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8000e000 0x80>;
|
|
interrupts = <0 121 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <2>;
|
|
};
|
|
|
|
gpio3: gpio@8000e080 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8000e080 0x80>;
|
|
interrupts = <0 122 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <3>;
|
|
};
|
|
|
|
gpio4: gpio@8000e100 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8000e100 0x80>;
|
|
interrupts = <0 123 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <4>;
|
|
};
|
|
|
|
gpio5: gpio@8000e180 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8000e180 0x80>;
|
|
interrupts = <0 124 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <5>;
|
|
};
|
|
|
|
gpio6: gpio@8011e000 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8011e000 0x80>;
|
|
interrupts = <0 125 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <6>;
|
|
};
|
|
|
|
gpio7: gpio@8011e080 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0x8011e080 0x80>;
|
|
interrupts = <0 126 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <7>;
|
|
};
|
|
|
|
gpio8: gpio@a03fe000 {
|
|
compatible = "stericsson,db8500-gpio",
|
|
"st,nomadik-gpio";
|
|
reg = <0xa03fe000 0x80>;
|
|
interrupts = <0 127 0x4>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
supports-sleepmode;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
gpio-bank = <8>;
|
|
};
|
|
|
|
pinctrl {
|
|
compatible = "stericsson,nmk_pinctrl";
|
|
};
|
|
|
|
usb@a03e0000 {
|
|
compatible = "stericsson,db8500-musb",
|
|
"mentor,musb";
|
|
reg = <0xa03e0000 0x10000>;
|
|
interrupts = <0 23 0x4>;
|
|
};
|
|
|
|
dma-controller@801C0000 {
|
|
compatible = "stericsson,db8500-dma40",
|
|
"stericsson,dma40";
|
|
reg = <0x801C0000 0x1000 0x40010000 0x800>;
|
|
interrupts = <0 25 0x4>;
|
|
};
|
|
|
|
prcmu@80157000 {
|
|
compatible = "stericsson,db8500-prcmu";
|
|
reg = <0x80157000 0x1000>;
|
|
interrupts = <0 47 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
prcmu-timer-4@80157450 {
|
|
compatible = "stericsson,db8500-prcmu-timer-4";
|
|
reg = <0x80157450 0xC>;
|
|
};
|
|
|
|
db8500-prcmu-regulators {
|
|
compatible = "stericsson,db8500-prcmu-regulator";
|
|
|
|
// DB8500_REGULATOR_VAPE
|
|
db8500_vape_reg: db8500_vape {
|
|
regulator-name = "db8500-vape";
|
|
regulator-always-on;
|
|
};
|
|
|
|
// DB8500_REGULATOR_VARM
|
|
db8500_varm_reg: db8500_varm {
|
|
regulator-name = "db8500-varm";
|
|
};
|
|
|
|
// DB8500_REGULATOR_VMODEM
|
|
db8500_vmodem_reg: db8500_vmodem {
|
|
regulator-name = "db8500-vmodem";
|
|
};
|
|
|
|
// DB8500_REGULATOR_VPLL
|
|
db8500_vpll_reg: db8500_vpll {
|
|
regulator-name = "db8500-vpll";
|
|
};
|
|
|
|
// DB8500_REGULATOR_VSMPS1
|
|
db8500_vsmps1_reg: db8500_vsmps1 {
|
|
regulator-name = "db8500-vsmps1";
|
|
};
|
|
|
|
// DB8500_REGULATOR_VSMPS2
|
|
db8500_vsmps2_reg: db8500_vsmps2 {
|
|
regulator-name = "db8500-vsmps2";
|
|
};
|
|
|
|
// DB8500_REGULATOR_VSMPS3
|
|
db8500_vsmps3_reg: db8500_vsmps3 {
|
|
regulator-name = "db8500-vsmps3";
|
|
};
|
|
|
|
// DB8500_REGULATOR_VRF1
|
|
db8500_vrf1_reg: db8500_vrf1 {
|
|
regulator-name = "db8500-vrf1";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SVAMMDSP
|
|
db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
|
|
regulator-name = "db8500-sva-mmdsp";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SVAMMDSPRET
|
|
db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
|
|
regulator-name = "db8500-sva-mmdsp-ret";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SVAPIPE
|
|
db8500_sva_pipe_reg: db8500_sva_pipe {
|
|
regulator-name = "db8500_sva_pipe";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SIAMMDSP
|
|
db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
|
|
regulator-name = "db8500_sia_mmdsp";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SIAMMDSPRET
|
|
db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
|
|
regulator-name = "db8500-sia-mmdsp-ret";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SIAPIPE
|
|
db8500_sia_pipe_reg: db8500_sia_pipe {
|
|
regulator-name = "db8500-sia-pipe";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_SGA
|
|
db8500_sga_reg: db8500_sga {
|
|
regulator-name = "db8500-sga";
|
|
vin-supply = <&db8500_vape_reg>;
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_B2R2_MCDE
|
|
db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
|
|
regulator-name = "db8500-b2r2-mcde";
|
|
vin-supply = <&db8500_vape_reg>;
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_ESRAM12
|
|
db8500_esram12_reg: db8500_esram12 {
|
|
regulator-name = "db8500-esram12";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_ESRAM12RET
|
|
db8500_esram12_ret_reg: db8500_esram12_ret {
|
|
regulator-name = "db8500-esram12-ret";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_ESRAM34
|
|
db8500_esram34_reg: db8500_esram34 {
|
|
regulator-name = "db8500-esram34";
|
|
};
|
|
|
|
// DB8500_REGULATOR_SWITCH_ESRAM34RET
|
|
db8500_esram34_ret_reg: db8500_esram34_ret {
|
|
regulator-name = "db8500-esram34-ret";
|
|
};
|
|
};
|
|
|
|
ab8500@5 {
|
|
compatible = "stericsson,ab8500";
|
|
reg = <5>; /* mailbox 5 is i2c */
|
|
interrupts = <0 40 0x4>;
|
|
|
|
ab8500-regulators {
|
|
compatible = "stericsson,ab8500-regulator";
|
|
|
|
// supplies to the display/camera
|
|
ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
|
|
regulator-name = "V-DISPLAY";
|
|
regulator-min-microvolt = <2500000>;
|
|
regulator-max-microvolt = <2900000>;
|
|
regulator-boot-on;
|
|
/* BUG: If turned off MMC will be affected. */
|
|
regulator-always-on;
|
|
};
|
|
|
|
// supplies to the on-board eMMC
|
|
ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
|
|
regulator-name = "V-eMMC1";
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
// supply for VAUX3; SDcard slots
|
|
ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
|
|
regulator-name = "V-MMC-SD";
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
// supply for v-intcore12; VINTCORE12 LDO
|
|
ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
|
|
regulator-name = "V-INTCORE";
|
|
};
|
|
|
|
// supply for tvout; gpadc; TVOUT LDO
|
|
ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
|
|
regulator-name = "V-TVOUT";
|
|
};
|
|
|
|
// supply for ab8500-usb; USB LDO
|
|
ab8500_ldo_usb_reg: ab8500_ldo_usb {
|
|
regulator-name = "dummy";
|
|
};
|
|
|
|
// supply for ab8500-vaudio; VAUDIO LDO
|
|
ab8500_ldo_audio_reg: ab8500_ldo_audio {
|
|
regulator-name = "V-AUD";
|
|
};
|
|
|
|
// supply for v-anamic1 VAMic1-LDO
|
|
ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
|
|
regulator-name = "V-AMIC1";
|
|
};
|
|
|
|
// supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
|
|
ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
|
|
regulator-name = "V-AMIC2";
|
|
};
|
|
|
|
// supply for v-dmic; VDMIC LDO
|
|
ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
|
|
regulator-name = "V-DMIC";
|
|
};
|
|
|
|
// supply for U8500 CSI/DSI; VANA LDO
|
|
ab8500_ldo_ana_reg: ab8500_ldo_ana {
|
|
regulator-name = "V-CSI/DSI";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
i2c@80004000 {
|
|
compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
|
|
reg = <0x80004000 0x1000>;
|
|
interrupts = <0 21 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
i2c@80122000 {
|
|
compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
|
|
reg = <0x80122000 0x1000>;
|
|
interrupts = <0 22 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
i2c@80128000 {
|
|
compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
|
|
reg = <0x80128000 0x1000>;
|
|
interrupts = <0 55 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
i2c@80110000 {
|
|
compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
|
|
reg = <0x80110000 0x1000>;
|
|
interrupts = <0 12 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
i2c@8012a000 {
|
|
compatible = "stericsson,db8500-i2c", "st,nomadik-i2c";
|
|
reg = <0x8012a000 0x1000>;
|
|
interrupts = <0 51 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
ssp@80002000 {
|
|
compatible = "arm,pl022", "arm,primecell";
|
|
reg = <80002000 0x1000>;
|
|
interrupts = <0 14 0x4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
|
|
// Add one of these for each child device
|
|
cs-gpios = <&gpio0 31 0x4 &gpio4 14 0x4 &gpio4 16 0x4
|
|
&gpio6 22 0x4 &gpio7 0 0x4>;
|
|
|
|
};
|
|
|
|
uart@80120000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x80120000 0x1000>;
|
|
interrupts = <0 11 0x4>;
|
|
status = "disabled";
|
|
};
|
|
uart@80121000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x80121000 0x1000>;
|
|
interrupts = <0 19 0x4>;
|
|
status = "disabled";
|
|
};
|
|
uart@80007000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x80007000 0x1000>;
|
|
interrupts = <0 26 0x4>;
|
|
status = "disabled";
|
|
};
|
|
|
|
sdi@80126000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x80126000 0x1000>;
|
|
interrupts = <0 60 0x4>;
|
|
status = "disabled";
|
|
};
|
|
sdi@80118000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x80118000 0x1000>;
|
|
interrupts = <0 50 0x4>;
|
|
status = "disabled";
|
|
};
|
|
sdi@80005000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x80005000 0x1000>;
|
|
interrupts = <0 41 0x4>;
|
|
status = "disabled";
|
|
};
|
|
sdi@80119000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x80119000 0x1000>;
|
|
interrupts = <0 59 0x4>;
|
|
status = "disabled";
|
|
};
|
|
sdi@80114000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x80114000 0x1000>;
|
|
interrupts = <0 99 0x4>;
|
|
status = "disabled";
|
|
};
|
|
sdi@80008000 {
|
|
compatible = "arm,pl18x", "arm,primecell";
|
|
reg = <0x80114000 0x1000>;
|
|
interrupts = <0 100 0x4>;
|
|
status = "disabled";
|
|
};
|
|
|
|
external-bus@50000000 {
|
|
compatible = "simple-bus";
|
|
reg = <0x50000000 0x4000000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0 0x50000000 0x4000000>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
};
|