Samsung DT updates for v3.16
- exynos4 : add missing pinctrls - exynos4412-trats2 : update camera nodes and add rear camera nodes : rename alias for i2c_ak8975 label Update camera nodes for exynos4 and exynos4412-trats2 - exynos5250 : update DWC3 usb controller and enable to use generic USB DRD phy - exynos5250-snow : enable dp-controller, fimd, hdmi and pwm backlight : add sound node and Vbus regulator for USB 3.0 : add tps65090 power regulator : add pinctrl for EC irq and i2c-arbitrator - exynos5420 : change to correct compatible string for hdmi : add PD entry to MFC codec and enable DWC3 and USB 3.0 PHY : add MFC memory banks for smdk5420 and arndale-octa boards - exynos5420-peach-pit : add support exynos5420 based peach-pit board : add sound node and Vbus regulatro for USB 3.0 : enable dp-controller, fimd - exynos5420-smdk5420 : add Vbus regulatro for USB 3.0 - use generic DT bindings for map SYSRAM -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJTeoyHAAoJEA0Cl+kVi2xq1f8P/jpE/fPz+9RgIqafgJzha/TS TFSZiT/YBMYkOOn33SFcY/CZ+Qbwc8UuZDLWTycKgwZK7LySFhhyHm/+f2vu9hUc Ie+7vPHjiQGmGJydV2sURyMh3VcLyigUf2hWRJJGW48+giDXeQPj4RScBfXEm/sj qj2ZQMh4p/fRSWhD5J1t/YN/Izme2AC6W+XX3Meuy4nqPBK0E9rmo5dAv7n7AslU C52atCQuqFrXootWTd9Po4/YZLH5GXagxpKVB7k9LmBDMNYYIca9k1stbwRHHa27 fA2lOOao/BAcKuaQvfWwy0lDOoTYrqvV3Z5Qebr507NtXpzzei0vf5v0N7pHbjJ8 cc3T4jEfY1edZTg+wg9pZBtRH0U0L0hL94pmwfBN2Dkdmzt0NNYeV5ZDnLFUlmKB Mqw+3oid49wBP7uNaS0dy27puqy2MVI3uO0O6cChG8hVrvWT5rIQeDft/c9mSTn4 sJwft9bEdg8uUhAr6WEJdoCxCK3Zpa8A2nt8M1MgRq+Tqm1n6fSq5d7cI8aFE5AE BQWlNUuRKzlWgd71XRhW2VAawS9nfafGFQfygPJfxQvt830NT1XM/b6rgWtrpZa+ vwgiQEEtjWQi6a4iqjl8efVh754jmcDGSuLQzzjvDpd64Ou7ZGNlZH0jELgl0Dha C0VtznCBPaPMDU2fUHjS =F8WL -----END PGP SIGNATURE----- Merge tag 'samsung-dt' of http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt Samsung DT updates for v3.16 - exynos4 : add missing pinctrls - exynos4412-trats2 : update camera nodes and add rear camera nodes : rename alias for i2c_ak8975 label Update camera nodes for exynos4 and exynos4412-trats2 - exynos5250 : update DWC3 usb controller and enable to use generic USB DRD phy - exynos5250-snow : enable dp-controller, fimd, hdmi and pwm backlight : add sound node and Vbus regulator for USB 3.0 : add tps65090 power regulator : add pinctrl for EC irq and i2c-arbitrator - exynos5420 : change to correct compatible string for hdmi : add PD entry to MFC codec and enable DWC3 and USB 3.0 PHY : add MFC memory banks for smdk5420 and arndale-octa boards - exynos5420-peach-pit : add support exynos5420 based peach-pit board : add sound node and Vbus regulatro for USB 3.0 : enable dp-controller, fimd - exynos5420-smdk5420 : add Vbus regulatro for USB 3.0 - use generic DT bindings for map SYSRAM [olof: Fixed up conflict with a fix for 4212 secondary CPU startup, carrying over the fix to the reworked code] * tag 'samsung-dt' of http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (32 commits) ARM: dts: Add MFC memory banks to exynos5420 boards ARM: dts: enable dp-controller for exynos5420-peach-pit board ARM: dts: enable fimd for exynos5420 based peach-pit board ARM: dts: enable dp-controller for exynos5250-snow board ARM: dts: enable fimd for exynos5250-snow board ARM: dts: enable pwm backlight for exynos5250-snow ARM: dts: Add pwmX_out pinctrl nodes to exynos5250 ARM: dts: Add Vbus regulator for USB 3.0 on exynos5420-smdk5420 ARM: dts: Add Vbus regulator for USB 3.0 on exynos5420-peach-pit ARM: dts: Add Vbus regulator for USB 3.0 on exynos5250-snow ARM: dts: Add PD entry to MFC codec on exynos5420 ARM: dts: Add sound node for exynos5420-peach-pit board ARM: dts: Add sound node for exynos5250-snow board ARM: dts: Update DWC3 usb controller to use new phy driver for exynos5250 ARM: dts: Enable support for generic USB DRD phy for exynos5250 ARM: dts: Enable support for DWC3 controller for exynos5420 ARM: dts: Enable support for USB 3.0 PHY controller for exynos5420 ARM: dts: enable hdmi for exynos5420-peach-pit board ARM: dts: change to correct compatible string for exynos5420 hdmi ARM: dts: enable hdmi for exynos5250 based snow board ... Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
dee1c20c2a
|
@ -0,0 +1,38 @@
|
|||
Samsung Exynos SYSRAM for SMP bringup:
|
||||
------------------------------------
|
||||
|
||||
Samsung SMP-capable Exynos SoCs use part of the SYSRAM for the bringup
|
||||
of the secondary cores. Once the core gets powered up it executes the
|
||||
code that is residing at some specific location of the SYSRAM.
|
||||
|
||||
Therefore reserved section sub-nodes have to be added to the mmio-sram
|
||||
declaration. These nodes are of two types depending upon secure or
|
||||
non-secure execution environment.
|
||||
|
||||
Required sub-node properties:
|
||||
- compatible : depending upon boot mode, should be
|
||||
"samsung,exynos4210-sysram" : for Secure SYSRAM
|
||||
"samsung,exynos4210-sysram-ns" : for Non-secure SYSRAM
|
||||
|
||||
The rest of the properties should follow the generic mmio-sram discription
|
||||
found in ../../misc/sysram.txt
|
||||
|
||||
Example:
|
||||
|
||||
sysram@02020000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x02020000 0x54000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x02020000 0x54000>;
|
||||
|
||||
smp-sysram@0 {
|
||||
compatible = "samsung,exynos4210-sysram";
|
||||
reg = <0x0 0x1000>;
|
||||
};
|
||||
|
||||
smp-sysram@53000 {
|
||||
compatible = "samsung,exynos4210-sysram-ns";
|
||||
reg = <0x53000 0x1000>;
|
||||
};
|
||||
};
|
|
@ -844,6 +844,7 @@ config ARCH_EXYNOS
|
|||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select NEED_MACH_MEMORY_H
|
||||
select SPARSE_IRQ
|
||||
select SRAM
|
||||
select USE_OF
|
||||
help
|
||||
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
|
||||
|
|
|
@ -73,6 +73,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
|
|||
exynos5250-smdk5250.dtb \
|
||||
exynos5250-snow.dtb \
|
||||
exynos5420-arndale-octa.dtb \
|
||||
exynos5420-peach-pit.dtb \
|
||||
exynos5420-smdk5420.dtb \
|
||||
exynos5440-sd5v1.dtb \
|
||||
exynos5440-ssdk5440.dtb
|
||||
|
|
|
@ -129,12 +129,10 @@
|
|||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "cam_a_clkout", "cam_b_clkout";
|
||||
ranges;
|
||||
|
||||
clock_cam: clock-controller {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
fimc_0: fimc@11800000 {
|
||||
compatible = "samsung,exynos4210-fimc";
|
||||
reg = <0x11800000 0x1000>;
|
||||
|
@ -371,6 +369,8 @@
|
|||
interrupts = <0 60 0>;
|
||||
clocks = <&clock CLK_I2C2>;
|
||||
clock-names = "i2c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c2_bus>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -382,6 +382,8 @@
|
|||
interrupts = <0 61 0>;
|
||||
clocks = <&clock CLK_I2C3>;
|
||||
clock-names = "i2c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c3_bus>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -393,6 +395,8 @@
|
|||
interrupts = <0 62 0>;
|
||||
clocks = <&clock CLK_I2C4>;
|
||||
clock-names = "i2c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c4_bus>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -404,6 +408,8 @@
|
|||
interrupts = <0 63 0>;
|
||||
clocks = <&clock CLK_I2C5>;
|
||||
clock-names = "i2c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c5_bus>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -415,6 +421,8 @@
|
|||
interrupts = <0 64 0>;
|
||||
clocks = <&clock CLK_I2C6>;
|
||||
clock-names = "i2c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c6_bus>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -426,6 +434,8 @@
|
|||
interrupts = <0 65 0>;
|
||||
clocks = <&clock CLK_I2C7>;
|
||||
clock-names = "i2c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c7_bus>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
|
|
@ -28,6 +28,21 @@
|
|||
bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1";
|
||||
};
|
||||
|
||||
sysram@02020000 {
|
||||
smp-sysram@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
smp-sysram@5000 {
|
||||
compatible = "samsung,exynos4210-sysram";
|
||||
reg = <0x5000 0x1000>;
|
||||
};
|
||||
|
||||
smp-sysram@1f000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
mct@10050000 {
|
||||
compatible = "none";
|
||||
};
|
||||
|
|
|
@ -31,6 +31,24 @@
|
|||
pinctrl2 = &pinctrl_2;
|
||||
};
|
||||
|
||||
sysram@02020000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x02020000 0x20000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x02020000 0x20000>;
|
||||
|
||||
smp-sysram@0 {
|
||||
compatible = "samsung,exynos4210-sysram";
|
||||
reg = <0x0 0x1000>;
|
||||
};
|
||||
|
||||
smp-sysram@1f000 {
|
||||
compatible = "samsung,exynos4210-sysram-ns";
|
||||
reg = <0x1f000 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
pd_lcd1: lcd1-power-domain@10023CA0 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10023CA0 0x20>;
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
compatible = "samsung,trats2", "samsung,exynos4412", "samsung,exynos4";
|
||||
|
||||
aliases {
|
||||
i2c8 = &i2c_ak8975;
|
||||
i2c9 = &i2c_ak8975;
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -80,7 +80,24 @@
|
|||
enable-active-high;
|
||||
};
|
||||
|
||||
/* More to come */
|
||||
cam_af_reg: voltage-regulator-3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "CAM_AF";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
gpio = <&gpm0 4 0>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
cam_isp_core_reg: voltage-regulator-4 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "CAM_ISP_CORE_1.2V_EN";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
gpio = <&gpm0 3 0>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
@ -140,6 +157,38 @@
|
|||
};
|
||||
};
|
||||
|
||||
i2c_0: i2c@13860000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-slave-addr = <0x10>;
|
||||
samsung,i2c-max-bus-freq = <400000>;
|
||||
pinctrl-0 = <&i2c0_bus>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
s5c73m3@3c {
|
||||
compatible = "samsung,s5c73m3";
|
||||
reg = <0x3c>;
|
||||
standby-gpios = <&gpm0 1 1>; /* ISP_STANDBY */
|
||||
xshutdown-gpios = <&gpf1 3 1>; /* ISP_RESET */
|
||||
vdd-int-supply = <&buck9_reg>;
|
||||
vddio-cis-supply = <&ldo9_reg>;
|
||||
vdda-supply = <&ldo17_reg>;
|
||||
vddio-host-supply = <&ldo18_reg>;
|
||||
vdd-af-supply = <&cam_af_reg>;
|
||||
vdd-reg-supply = <&cam_io_reg>;
|
||||
clock-frequency = <24000000>;
|
||||
/* CAM_A_CLKOUT */
|
||||
clocks = <&camera 0>;
|
||||
clock-names = "cis_extclk";
|
||||
port {
|
||||
s5c73m3_ep: endpoint {
|
||||
remote-endpoint = <&csis0_ep>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c@138D0000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-slave-addr = <0x10>;
|
||||
|
@ -586,8 +635,8 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
camera {
|
||||
pinctrl-0 = <&cam_port_b_clk_active>;
|
||||
camera: camera {
|
||||
pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
|
@ -607,6 +656,23 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
csis_0: csis@11880000 {
|
||||
status = "okay";
|
||||
vddcore-supply = <&ldo8_reg>;
|
||||
vddio-supply = <&ldo10_reg>;
|
||||
clock-frequency = <176000000>;
|
||||
|
||||
/* Camera C (3) MIPI CSI-2 (CSIS0) */
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
csis0_ep: endpoint {
|
||||
remote-endpoint = <&s5c73m3_ep>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
samsung,csis-hs-settle = <12>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
csis_1: csis@11890000 {
|
||||
vddcore-supply = <&ldo8_reg>;
|
||||
vddio-supply = <&ldo10_reg>;
|
||||
|
@ -647,10 +713,11 @@
|
|||
reg = <0x10>;
|
||||
svdda-supply = <&cam_io_reg>;
|
||||
svddio-supply = <&ldo19_reg>;
|
||||
afvdd-supply = <&ldo19_reg>;
|
||||
clock-frequency = <24000000>;
|
||||
/* CAM_B_CLKOUT */
|
||||
clocks = <&clock_cam 1>;
|
||||
clock-names = "mclk";
|
||||
clocks = <&camera 1>;
|
||||
clock-names = "extclk";
|
||||
samsung,camclk-out = <1>;
|
||||
gpios = <&gpm1 6 0>;
|
||||
|
||||
|
|
|
@ -37,6 +37,24 @@
|
|||
interrupts = <2 2>, <3 2>, <18 2>, <19 2>;
|
||||
};
|
||||
|
||||
sysram@02020000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x02020000 0x40000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x02020000 0x40000>;
|
||||
|
||||
smp-sysram@0 {
|
||||
compatible = "samsung,exynos4210-sysram";
|
||||
reg = <0x0 0x1000>;
|
||||
};
|
||||
|
||||
smp-sysram@2f000 {
|
||||
compatible = "samsung,exynos4210-sysram-ns";
|
||||
reg = <0x2f000 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
pd_isp: isp-power-domain@10023CA0 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10023CA0 0x20>;
|
||||
|
|
|
@ -240,7 +240,7 @@
|
|||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-max-bus-freq = <378000>;
|
||||
|
||||
hdmiphy@38 {
|
||||
hdmiphy: hdmiphy@38 {
|
||||
compatible = "samsung,exynos4212-hdmiphy";
|
||||
reg = <0x38>;
|
||||
};
|
||||
|
@ -304,6 +304,10 @@
|
|||
|
||||
hdmi {
|
||||
hpd-gpio = <&gpx3 7 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hdmi_hpd_irq>;
|
||||
phy = <&hdmiphy>;
|
||||
ddc = <&i2c_2>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
|
|
@ -351,6 +351,34 @@
|
|||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm0_out: pwm0-out {
|
||||
samsung,pins = "gpb2-0";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm1_out: pwm1-out {
|
||||
samsung,pins = "gpb2-1";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm2_out: pwm2-out {
|
||||
samsung,pins = "gpb2-2";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm3_out: pwm3-out {
|
||||
samsung,pins = "gpb2-3";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
i2c7_bus: i2c7-bus {
|
||||
samsung,pins = "gpb2-2", "gpb2-3";
|
||||
samsung,pin-function = <3>;
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
};
|
||||
|
||||
pinctrl@11400000 {
|
||||
ec_irq: ec-irq {
|
||||
samsung,pins = "gpx1-6";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
sd3_clk: sd3-clk {
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
@ -37,6 +44,50 @@
|
|||
sd3_bus4: sd3-bus-width4 {
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
max98095_en: max98095-en {
|
||||
samsung,pins = "gpx1-7";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <3>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
tps65090_irq: tps65090-irq {
|
||||
samsung,pins = "gpx2-6";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
usb3_vbus_en: usb3-vbus-en {
|
||||
samsung,pins = "gpx2-7";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
hdmi_hpd_irq: hdmi-hpd-irq {
|
||||
samsung,pins = "gpx3-7";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <1>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl@13400000 {
|
||||
arb_their_claim: arb-their-claim {
|
||||
samsung,pins = "gpe0-4";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <3>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
arb_our_claim: arb-our-claim {
|
||||
samsung,pins = "gpf0-3";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
@ -52,6 +103,12 @@
|
|||
};
|
||||
};
|
||||
|
||||
vbat: vbat-fixed-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vbat-supply";
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
i2c-arbitrator {
|
||||
compatible = "i2c-arb-gpio-challenge";
|
||||
#address-cells = <1>;
|
||||
|
@ -65,6 +122,9 @@
|
|||
wait-retry-us = <3000>;
|
||||
wait-free-us = <50000>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&arb_our_claim &arb_their_claim>;
|
||||
|
||||
/* Use ID 104 as a hint that we're on physical bus 4 */
|
||||
i2c_104: i2c@0 {
|
||||
reg = <0>;
|
||||
|
@ -82,6 +142,8 @@
|
|||
reg = <0x1e>;
|
||||
interrupts = <6 0>;
|
||||
interrupt-parent = <&gpx1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ec_irq>;
|
||||
wakeup-source;
|
||||
|
||||
keyboard-controller {
|
||||
|
@ -173,6 +235,83 @@
|
|||
0x070c0069>; /* LEFT */
|
||||
};
|
||||
};
|
||||
|
||||
power-regulator {
|
||||
compatible = "ti,tps65090";
|
||||
reg = <0x48>;
|
||||
|
||||
/*
|
||||
* Config irq to disable internal pulls
|
||||
* even though we run in polling mode.
|
||||
*/
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&tps65090_irq>;
|
||||
|
||||
vsys1-supply = <&vbat>;
|
||||
vsys2-supply = <&vbat>;
|
||||
vsys3-supply = <&vbat>;
|
||||
infet1-supply = <&vbat>;
|
||||
infet2-supply = <&vbat>;
|
||||
infet3-supply = <&vbat>;
|
||||
infet4-supply = <&vbat>;
|
||||
infet5-supply = <&vbat>;
|
||||
infet6-supply = <&vbat>;
|
||||
infet7-supply = <&vbat>;
|
||||
vsys-l1-supply = <&vbat>;
|
||||
vsys-l2-supply = <&vbat>;
|
||||
|
||||
regulators {
|
||||
dcdc1 {
|
||||
ti,enable-ext-control;
|
||||
};
|
||||
dcdc2 {
|
||||
ti,enable-ext-control;
|
||||
};
|
||||
dcdc3 {
|
||||
ti,enable-ext-control;
|
||||
};
|
||||
fet1 {
|
||||
regulator-name = "vcd_led";
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
tps65090_fet2: fet2 {
|
||||
regulator-name = "video_mid";
|
||||
regulator-always-on;
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
fet3 {
|
||||
regulator-name = "wwan_r";
|
||||
regulator-always-on;
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
fet4 {
|
||||
regulator-name = "sdcard";
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
fet5 {
|
||||
regulator-name = "camout";
|
||||
regulator-always-on;
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
fet6 {
|
||||
regulator-name = "lcd_vdd";
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
tps65090_fet7: fet7 {
|
||||
regulator-name = "video_mid_1a";
|
||||
regulator-always-on;
|
||||
ti,overcurrent-wait = <3>;
|
||||
};
|
||||
ldo1 {
|
||||
};
|
||||
ldo2 {
|
||||
};
|
||||
};
|
||||
|
||||
charger {
|
||||
compatible = "ti,tps65090-charger";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -196,6 +335,41 @@
|
|||
};
|
||||
};
|
||||
|
||||
i2c@12CD0000 {
|
||||
max98095: codec@11 {
|
||||
compatible = "maxim,max98095";
|
||||
reg = <0x11>;
|
||||
pinctrl-0 = <&max98095_en>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
};
|
||||
|
||||
i2s0: i2s@03830000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "google,snow-audio-max98095";
|
||||
|
||||
samsung,i2s-controller = <&i2s0>;
|
||||
samsung,audio-codec = <&max98095>;
|
||||
};
|
||||
|
||||
usb3_vbus_reg: regulator-usb3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "P5.0V_USB3CON";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpx2 7 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb3_vbus_en>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
phy@12100000 {
|
||||
vbus-supply = <&usb3_vbus_reg>;
|
||||
};
|
||||
|
||||
usb@12110000 {
|
||||
samsung,vbus-gpio = <&gpx1 1 0>;
|
||||
};
|
||||
|
@ -206,4 +380,54 @@
|
|||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
||||
hdmi {
|
||||
hdmi-en-supply = <&tps65090_fet7>;
|
||||
vdd-supply = <&ldo8_reg>;
|
||||
vdd_osc-supply = <&ldo10_reg>;
|
||||
vdd_pll-supply = <&ldo8_reg>;
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm 0 1000000 0>;
|
||||
brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
|
||||
default-brightness-level = <7>;
|
||||
pinctrl-0 = <&pwm0_out>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
fimd@14400000 {
|
||||
status = "okay";
|
||||
samsung,invert-vclk;
|
||||
};
|
||||
|
||||
dp-controller@145B0000 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dp_hpd>;
|
||||
samsung,color-space = <0>;
|
||||
samsung,dynamic-range = <0>;
|
||||
samsung,ycbcr-coeff = <0>;
|
||||
samsung,color-depth = <1>;
|
||||
samsung,link-rate = <0x0a>;
|
||||
samsung,lane-count = <2>;
|
||||
samsung,hpd-gpio = <&gpx0 7 0>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing1>;
|
||||
|
||||
timing1: timing@1 {
|
||||
clock-frequency = <70589280>;
|
||||
hactive = <1366>;
|
||||
vactive = <768>;
|
||||
hfront-porch = <40>;
|
||||
hback-porch = <40>;
|
||||
hsync-len = <32>;
|
||||
vback-porch = <10>;
|
||||
vfront-porch = <12>;
|
||||
vsync-len = <6>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -72,6 +72,24 @@
|
|||
};
|
||||
};
|
||||
|
||||
sysram@02020000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x02020000 0x30000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x02020000 0x30000>;
|
||||
|
||||
smp-sysram@0 {
|
||||
compatible = "samsung,exynos4210-sysram";
|
||||
reg = <0x0 0x1000>;
|
||||
};
|
||||
|
||||
smp-sysram@2f000 {
|
||||
compatible = "samsung,exynos4210-sysram-ns";
|
||||
reg = <0x2f000 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
pd_gsc: gsc-power-domain@10044000 {
|
||||
compatible = "samsung,exynos4210-pd";
|
||||
reg = <0x10044000 0x20>;
|
||||
|
@ -533,22 +551,18 @@
|
|||
compatible = "synopsys,dwc3";
|
||||
reg = <0x12000000 0x10000>;
|
||||
interrupts = <0 72 0>;
|
||||
usb-phy = <&usb2_phy &usb3_phy>;
|
||||
phys = <&usbdrd_phy 0>, <&usbdrd_phy 1>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
};
|
||||
|
||||
usb3_phy: usbphy@12100000 {
|
||||
compatible = "samsung,exynos5250-usb3phy";
|
||||
usbdrd_phy: phy@12100000 {
|
||||
compatible = "samsung,exynos5250-usbdrd-phy";
|
||||
reg = <0x12100000 0x100>;
|
||||
clocks = <&clock CLK_FIN_PLL>, <&clock CLK_USB3>;
|
||||
clock-names = "ext_xtal", "usbdrd30";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
usbphy-sys {
|
||||
reg = <0x10040704 0x8>;
|
||||
};
|
||||
clocks = <&clock CLK_USB3>, <&clock CLK_FIN_PLL>;
|
||||
clock-names = "phy", "ref";
|
||||
samsung,pmu-syscon = <&pmu_system_controller>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
usb@12110000 {
|
||||
|
|
|
@ -37,6 +37,11 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
codec@11000000 {
|
||||
samsung,mfc-r = <0x43000000 0x800000>;
|
||||
samsung,mfc-l = <0x51000000 0x800000>;
|
||||
};
|
||||
|
||||
mmc@12200000 {
|
||||
status = "okay";
|
||||
broken-cd;
|
||||
|
|
|
@ -0,0 +1,287 @@
|
|||
/*
|
||||
* Google Peach Pit Rev 6+ board device tree source
|
||||
*
|
||||
* Copyright (c) 2014 Google, Inc
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include "exynos5420.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Google Peach Pit Rev 6+";
|
||||
|
||||
compatible = "google,pit-rev16",
|
||||
"google,pit-rev15", "google,pit-rev14",
|
||||
"google,pit-rev13", "google,pit-rev12",
|
||||
"google,pit-rev11", "google,pit-rev10",
|
||||
"google,pit-rev9", "google,pit-rev8",
|
||||
"google,pit-rev7", "google,pit-rev6",
|
||||
"google,pit", "google,peach","samsung,exynos5420",
|
||||
"samsung,exynos5";
|
||||
|
||||
memory {
|
||||
reg = <0x20000000 0x80000000>;
|
||||
};
|
||||
|
||||
fixed-rate-clocks {
|
||||
oscclk {
|
||||
compatible = "samsung,exynos5420-oscclk";
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&power_key_irq>;
|
||||
|
||||
power {
|
||||
label = "Power";
|
||||
gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_POWER>;
|
||||
gpio-key,wakeup;
|
||||
};
|
||||
};
|
||||
|
||||
backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm 0 1000000 0>;
|
||||
brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
|
||||
default-brightness-level = <7>;
|
||||
pinctrl-0 = <&pwm0_out>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "google,snow-audio-max98090";
|
||||
|
||||
samsung,i2s-controller = <&i2s0>;
|
||||
samsung,audio-codec = <&max98090>;
|
||||
};
|
||||
|
||||
usb300_vbus_reg: regulator-usb300 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "P5.0V_USB3CON0";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gph0 0 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb300_vbus_en>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb301_vbus_reg: regulator-usb301 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "P5.0V_USB3CON1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gph0 1 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb301_vbus_en>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl_0 {
|
||||
max98090_irq: max98090-irq {
|
||||
samsung,pins = "gpx0-2";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
tpm_irq: tpm-irq {
|
||||
samsung,pins = "gpx1-0";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
power_key_irq: power-key-irq {
|
||||
samsung,pins = "gpx1-2";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
hdmi_hpd_irq: hdmi-hpd-irq {
|
||||
samsung,pins = "gpx3-7";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <1>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl_3 {
|
||||
usb300_vbus_en: usb300-vbus-en {
|
||||
samsung,pins = "gph0-0";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
usb301_vbus_en: usb301-vbus-en {
|
||||
samsung,pins = "gph0-1";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
dp_hpd_gpio: dp_hpd_gpio {
|
||||
samsung,pins = "gpx2-6";
|
||||
samsung,pin-function = <0>;
|
||||
samsung,pin-pud = <3>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&rtc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart_3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc_0 {
|
||||
status = "okay";
|
||||
num-slots = <1>;
|
||||
broken-cd;
|
||||
caps2-mmc-hs200-1_8v;
|
||||
supports-highspeed;
|
||||
non-removable;
|
||||
card-detect-delay = <200>;
|
||||
clock-frequency = <400000000>;
|
||||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <0 4>;
|
||||
samsung,dw-mshc-ddr-timing = <0 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
|
||||
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc_2 {
|
||||
status = "okay";
|
||||
num-slots = <1>;
|
||||
supports-highspeed;
|
||||
card-detect-delay = <200>;
|
||||
clock-frequency = <400000000>;
|
||||
samsung,dw-mshc-ciu-div = <3>;
|
||||
samsung,dw-mshc-sdr-timing = <2 3>;
|
||||
samsung,dw-mshc-ddr-timing = <1 2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
|
||||
|
||||
slot@0 {
|
||||
reg = <0>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&hsi2c_7 {
|
||||
status = "okay";
|
||||
|
||||
max98090: codec@10 {
|
||||
compatible = "maxim,max98090";
|
||||
reg = <0x10>;
|
||||
interrupts = <2 0>;
|
||||
interrupt-parent = <&gpx0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&max98090_irq>;
|
||||
};
|
||||
};
|
||||
|
||||
&hsi2c_9 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
tpm@20 {
|
||||
compatible = "infineon,slb9645tt";
|
||||
reg = <0x20>;
|
||||
|
||||
/* Unused irq; but still need to configure the pins */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&tpm_irq>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c_2 {
|
||||
status = "okay";
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-max-bus-freq = <66000>;
|
||||
samsung,i2c-slave-addr = <0x50>;
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
status = "okay";
|
||||
hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hdmi_hpd_irq>;
|
||||
ddc = <&i2c_2>;
|
||||
};
|
||||
|
||||
&usbdrd3_0 {
|
||||
vbus-supply = <&usb300_vbus_reg>;
|
||||
};
|
||||
|
||||
&usbdrd3_1 {
|
||||
vbus-supply = <&usb301_vbus_reg>;
|
||||
};
|
||||
|
||||
/*
|
||||
* Use longest HW watchdog in SoC (32 seconds) since the hardware
|
||||
* watchdog provides no debugging information (compared to soft/hard
|
||||
* lockup detectors) and so should be last resort.
|
||||
*/
|
||||
&watchdog {
|
||||
timeout-sec = <32>;
|
||||
};
|
||||
|
||||
&i2s0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&fimd {
|
||||
status = "okay";
|
||||
samsung,invert-vclk;
|
||||
};
|
||||
|
||||
&dp {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dp_hpd_gpio>;
|
||||
samsung,color-space = <0>;
|
||||
samsung,dynamic-range = <0>;
|
||||
samsung,ycbcr-coeff = <0>;
|
||||
samsung,color-depth = <1>;
|
||||
samsung,link-rate = <0x06>;
|
||||
samsung,lane-count = <2>;
|
||||
samsung,hpd-gpio = <&gpx2 6 0>;
|
||||
|
||||
display-timings {
|
||||
native-mode = <&timing1>;
|
||||
|
||||
timing1: timing@1 {
|
||||
clock-frequency = <70589280>;
|
||||
hactive = <1366>;
|
||||
vactive = <768>;
|
||||
hfront-porch = <40>;
|
||||
hback-porch = <40>;
|
||||
hsync-len = <32>;
|
||||
vback-porch = <10>;
|
||||
vfront-porch = <12>;
|
||||
vsync-len = <6>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -624,6 +624,34 @@
|
|||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm0_out: pwm0-out {
|
||||
samsung,pins = "gpb2-0";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm1_out: pwm1-out {
|
||||
samsung,pins = "gpb2-1";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm2_out: pwm2-out {
|
||||
samsung,pins = "gpb2-2";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
pwm3_out: pwm3-out {
|
||||
samsung,pins = "gpb2-3";
|
||||
samsung,pin-function = <2>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
i2c7_hs_bus: i2c7-hs-bus {
|
||||
samsung,pins = "gpb2-2", "gpb2-3";
|
||||
samsung,pin-function = <3>;
|
||||
|
|
|
@ -68,6 +68,11 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
codec@11000000 {
|
||||
samsung,mfc-r = <0x43000000 0x800000>;
|
||||
samsung,mfc-l = <0x51000000 0x800000>;
|
||||
};
|
||||
|
||||
mmc@12200000 {
|
||||
status = "okay";
|
||||
broken-cd;
|
||||
|
@ -140,6 +145,22 @@
|
|||
};
|
||||
};
|
||||
|
||||
pinctrl@14000000 {
|
||||
usb300_vbus_en: usb300-vbus-en {
|
||||
samsung,pins = "gpg0-5";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
|
||||
usb301_vbus_en: usb301-vbus-en {
|
||||
samsung,pins = "gpg1-4";
|
||||
samsung,pin-function = <1>;
|
||||
samsung,pin-pud = <0>;
|
||||
samsung,pin-drv = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
hdmi@14530000 {
|
||||
status = "okay";
|
||||
hpd-gpio = <&gpx3 7 0>;
|
||||
|
@ -147,6 +168,36 @@
|
|||
pinctrl-0 = <&hdmi_hpd_irq>;
|
||||
};
|
||||
|
||||
usb300_vbus_reg: regulator-usb300 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VBUS0";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpg0 5 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb300_vbus_en>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
usb301_vbus_reg: regulator-usb301 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "VBUS1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpg1 4 0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb301_vbus_en>;
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
phy@12100000 {
|
||||
vbus-supply = <&usb300_vbus_reg>;
|
||||
};
|
||||
|
||||
phy@12500000 {
|
||||
vbus-supply = <&usb301_vbus_reg>;
|
||||
};
|
||||
|
||||
i2c_2: i2c@12C80000 {
|
||||
samsung,i2c-sda-delay = <100>;
|
||||
samsung,i2c-max-bus-freq = <66000>;
|
||||
|
|
|
@ -47,6 +47,8 @@
|
|||
spi0 = &spi_0;
|
||||
spi1 = &spi_1;
|
||||
spi2 = &spi_2;
|
||||
usbdrdphy0 = &usbdrd_phy0;
|
||||
usbdrdphy1 = &usbdrd_phy1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
|
@ -110,6 +112,24 @@
|
|||
};
|
||||
};
|
||||
|
||||
sysram@02020000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x02020000 0x54000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x02020000 0x54000>;
|
||||
|
||||
smp-sysram@0 {
|
||||
compatible = "samsung,exynos4210-sysram";
|
||||
reg = <0x0 0x1000>;
|
||||
};
|
||||
|
||||
smp-sysram@53000 {
|
||||
compatible = "samsung,exynos4210-sysram-ns";
|
||||
reg = <0x53000 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
clock: clock-controller@10010000 {
|
||||
compatible = "samsung,exynos5420-clock";
|
||||
reg = <0x10010000 0x30000>;
|
||||
|
@ -125,12 +145,13 @@
|
|||
clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
|
||||
};
|
||||
|
||||
codec@11000000 {
|
||||
mfc: codec@11000000 {
|
||||
compatible = "samsung,mfc-v7";
|
||||
reg = <0x11000000 0x10000>;
|
||||
interrupts = <0 96 0>;
|
||||
clocks = <&clock CLK_MFC>;
|
||||
clock-names = "mfc";
|
||||
samsung,power-domain = <&mfc_pd>;
|
||||
};
|
||||
|
||||
mmc_0: mmc@12200000 {
|
||||
|
@ -169,7 +190,7 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
mct@101C0000 {
|
||||
mct: mct@101C0000 {
|
||||
compatible = "samsung,exynos4210-mct";
|
||||
reg = <0x101C0000 0x800>;
|
||||
interrupt-controller;
|
||||
|
@ -260,7 +281,7 @@
|
|||
interrupts = <0 47 0>;
|
||||
};
|
||||
|
||||
rtc@101E0000 {
|
||||
rtc: rtc@101E0000 {
|
||||
clocks = <&clock CLK_RTC>;
|
||||
clock-names = "rtc";
|
||||
status = "disabled";
|
||||
|
@ -427,22 +448,22 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@12C00000 {
|
||||
uart_0: serial@12C00000 {
|
||||
clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
};
|
||||
|
||||
serial@12C10000 {
|
||||
uart_1: serial@12C10000 {
|
||||
clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
};
|
||||
|
||||
serial@12C20000 {
|
||||
uart_2: serial@12C20000 {
|
||||
clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
};
|
||||
|
||||
serial@12C30000 {
|
||||
uart_3: serial@12C30000 {
|
||||
clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
|
||||
clock-names = "uart", "clk_uart_baud0";
|
||||
};
|
||||
|
@ -462,14 +483,14 @@
|
|||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
dp-controller@145B0000 {
|
||||
dp: dp-controller@145B0000 {
|
||||
clocks = <&clock CLK_DP1>;
|
||||
clock-names = "dp";
|
||||
phys = <&dp_phy>;
|
||||
phy-names = "dp";
|
||||
};
|
||||
|
||||
fimd@14400000 {
|
||||
fimd: fimd@14400000 {
|
||||
samsung,power-domain = <&disp_pd>;
|
||||
clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
|
||||
clock-names = "sclk_fimd", "fimd";
|
||||
|
@ -629,8 +650,8 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
hdmi@14530000 {
|
||||
compatible = "samsung,exynos4212-hdmi";
|
||||
hdmi: hdmi@14530000 {
|
||||
compatible = "samsung,exynos5420-hdmi";
|
||||
reg = <0x14530000 0x70000>;
|
||||
interrupts = <0 95 0>;
|
||||
clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
|
||||
|
@ -638,10 +659,15 @@
|
|||
<&clock CLK_MOUT_HDMI>;
|
||||
clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
|
||||
"sclk_hdmiphy", "mout_hdmi";
|
||||
phy = <&hdmiphy>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mixer@14450000 {
|
||||
hdmiphy: hdmiphy@145D0000 {
|
||||
reg = <0x145D0000 0x20>;
|
||||
};
|
||||
|
||||
mixer: mixer@14450000 {
|
||||
compatible = "samsung,exynos5420-mixer";
|
||||
reg = <0x14450000 0x10000>;
|
||||
interrupts = <0 94 0>;
|
||||
|
@ -712,7 +738,7 @@
|
|||
clock-names = "tmu_apbif", "tmu_triminfo_apbif";
|
||||
};
|
||||
|
||||
watchdog@101D0000 {
|
||||
watchdog: watchdog@101D0000 {
|
||||
compatible = "samsung,exynos5420-wdt";
|
||||
reg = <0x101D0000 0x100>;
|
||||
interrupts = <0 42 0>;
|
||||
|
@ -721,11 +747,63 @@
|
|||
samsung,syscon-phandle = <&pmu_system_controller>;
|
||||
};
|
||||
|
||||
sss@10830000 {
|
||||
sss: sss@10830000 {
|
||||
compatible = "samsung,exynos4210-secss";
|
||||
reg = <0x10830000 0x10000>;
|
||||
interrupts = <0 112 0>;
|
||||
clocks = <&clock 471>;
|
||||
clock-names = "secss";
|
||||
};
|
||||
|
||||
usbdrd3_0: usb@12000000 {
|
||||
compatible = "samsung,exynos5250-dwusb3";
|
||||
clocks = <&clock CLK_USBD300>;
|
||||
clock-names = "usbdrd30";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
dwc3 {
|
||||
compatible = "snps,dwc3";
|
||||
reg = <0x12000000 0x10000>;
|
||||
interrupts = <0 72 0>;
|
||||
phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
};
|
||||
|
||||
usbdrd_phy0: phy@12100000 {
|
||||
compatible = "samsung,exynos5420-usbdrd-phy";
|
||||
reg = <0x12100000 0x100>;
|
||||
clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
|
||||
clock-names = "phy", "ref";
|
||||
samsung,pmu-syscon = <&pmu_system_controller>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
usbdrd3_1: usb@12400000 {
|
||||
compatible = "samsung,exynos5250-dwusb3";
|
||||
clocks = <&clock CLK_USBD301>;
|
||||
clock-names = "usbdrd30";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
dwc3 {
|
||||
compatible = "snps,dwc3";
|
||||
reg = <0x12400000 0x10000>;
|
||||
interrupts = <0 73 0>;
|
||||
phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>;
|
||||
phy-names = "usb2-phy", "usb3-phy";
|
||||
};
|
||||
};
|
||||
|
||||
usbdrd_phy1: phy@12500000 {
|
||||
compatible = "samsung,exynos5420-usbdrd-phy";
|
||||
reg = <0x12500000 0x100>;
|
||||
clocks = <&clock CLK_USBD301>, <&clock CLK_SCLK_USBPHY301>;
|
||||
clock-names = "phy", "ref";
|
||||
samsung,pmu-syscon = <&pmu_system_controller>;
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
|
||||
|
||||
struct map_desc;
|
||||
extern void __iomem *sysram_ns_base_addr;
|
||||
void exynos_init_io(void);
|
||||
void exynos_restart(enum reboot_mode mode, const char *cmd);
|
||||
void exynos_cpuidle_init(void);
|
||||
|
|
|
@ -114,51 +114,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct map_desc exynos4_iodesc0[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM,
|
||||
.pfn = __phys_to_pfn(EXYNOS4_PA_SYSRAM0),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc exynos4_iodesc1[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM,
|
||||
.pfn = __phys_to_pfn(EXYNOS4_PA_SYSRAM1),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc exynos4210_iodesc[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM_NS,
|
||||
.pfn = __phys_to_pfn(EXYNOS4210_PA_SYSRAM_NS),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc exynos4x12_iodesc[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM_NS,
|
||||
.pfn = __phys_to_pfn(EXYNOS4x12_PA_SYSRAM_NS),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc exynos5250_iodesc[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM_NS,
|
||||
.pfn = __phys_to_pfn(EXYNOS5250_PA_SYSRAM_NS),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
static struct map_desc exynos5_iodesc[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long)S3C_VA_SYS,
|
||||
|
@ -180,11 +135,6 @@ static struct map_desc exynos5_iodesc[] __initdata = {
|
|||
.pfn = __phys_to_pfn(EXYNOS5_PA_SROMC),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = (unsigned long)S5P_VA_SYSRAM,
|
||||
.pfn = __phys_to_pfn(EXYNOS5_PA_SYSRAM),
|
||||
.length = SZ_4K,
|
||||
.type = MT_DEVICE,
|
||||
}, {
|
||||
.virtual = (unsigned long)S5P_VA_CMU,
|
||||
.pfn = __phys_to_pfn(EXYNOS5_PA_CMU),
|
||||
|
@ -280,20 +230,6 @@ static void __init exynos_map_io(void)
|
|||
|
||||
if (soc_is_exynos5())
|
||||
iotable_init(exynos5_iodesc, ARRAY_SIZE(exynos5_iodesc));
|
||||
|
||||
if (soc_is_exynos4210()) {
|
||||
if (samsung_rev() == EXYNOS4210_REV_0)
|
||||
iotable_init(exynos4_iodesc0,
|
||||
ARRAY_SIZE(exynos4_iodesc0));
|
||||
else
|
||||
iotable_init(exynos4_iodesc1,
|
||||
ARRAY_SIZE(exynos4_iodesc1));
|
||||
iotable_init(exynos4210_iodesc, ARRAY_SIZE(exynos4210_iodesc));
|
||||
}
|
||||
if (soc_is_exynos4212() || soc_is_exynos4412())
|
||||
iotable_init(exynos4x12_iodesc, ARRAY_SIZE(exynos4x12_iodesc));
|
||||
if (soc_is_exynos5250())
|
||||
iotable_init(exynos5250_iodesc, ARRAY_SIZE(exynos5250_iodesc));
|
||||
}
|
||||
|
||||
void __init exynos_init_io(void)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "smc.h"
|
||||
|
||||
static int exynos_do_idle(void)
|
||||
|
@ -44,7 +45,12 @@ static int exynos_cpu_boot(int cpu)
|
|||
|
||||
static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
|
||||
{
|
||||
void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
|
||||
void __iomem *boot_reg;
|
||||
|
||||
if (!sysram_ns_base_addr)
|
||||
return -ENODEV;
|
||||
|
||||
boot_reg = sysram_ns_base_addr + 0x1c;
|
||||
|
||||
if (!soc_is_exynos4212())
|
||||
boot_reg += 4*cpu;
|
||||
|
|
|
@ -23,13 +23,6 @@
|
|||
|
||||
#include <plat/map-s5p.h>
|
||||
|
||||
#define EXYNOS4_PA_SYSRAM0 0x02025000
|
||||
#define EXYNOS4_PA_SYSRAM1 0x02020000
|
||||
#define EXYNOS5_PA_SYSRAM 0x02020000
|
||||
#define EXYNOS4210_PA_SYSRAM_NS 0x0203F000
|
||||
#define EXYNOS4x12_PA_SYSRAM_NS 0x0204F000
|
||||
#define EXYNOS5250_PA_SYSRAM_NS 0x0204F000
|
||||
|
||||
#define EXYNOS_PA_CHIPID 0x10000000
|
||||
|
||||
#define EXYNOS4_PA_SYSCON 0x10010000
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/jiffies.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/smp_plat.h>
|
||||
|
@ -33,11 +34,33 @@
|
|||
|
||||
extern void exynos4_secondary_startup(void);
|
||||
|
||||
static void __iomem *sysram_base_addr;
|
||||
void __iomem *sysram_ns_base_addr;
|
||||
|
||||
static void __init exynos_smp_prepare_sysram(void)
|
||||
{
|
||||
struct device_node *node;
|
||||
|
||||
for_each_compatible_node(node, NULL, "samsung,exynos4210-sysram") {
|
||||
if (!of_device_is_available(node))
|
||||
continue;
|
||||
sysram_base_addr = of_iomap(node, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
for_each_compatible_node(node, NULL, "samsung,exynos4210-sysram-ns") {
|
||||
if (!of_device_is_available(node))
|
||||
continue;
|
||||
sysram_ns_base_addr = of_iomap(node, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __iomem *cpu_boot_reg_base(void)
|
||||
{
|
||||
if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_1_1)
|
||||
return S5P_INFORM5;
|
||||
return S5P_VA_SYSRAM;
|
||||
return sysram_base_addr;
|
||||
}
|
||||
|
||||
static inline void __iomem *cpu_boot_reg(int cpu)
|
||||
|
@ -45,6 +68,8 @@ static inline void __iomem *cpu_boot_reg(int cpu)
|
|||
void __iomem *boot_reg;
|
||||
|
||||
boot_reg = cpu_boot_reg_base();
|
||||
if (!boot_reg)
|
||||
return ERR_PTR(-ENODEV);
|
||||
if (soc_is_exynos4412())
|
||||
boot_reg += 4*cpu;
|
||||
else if (soc_is_exynos5420())
|
||||
|
@ -90,6 +115,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
|||
{
|
||||
unsigned long timeout;
|
||||
unsigned long phys_cpu = cpu_logical_map(cpu);
|
||||
int ret = -ENOSYS;
|
||||
|
||||
/*
|
||||
* Set synchronisation state between this boot processor
|
||||
|
@ -146,8 +172,18 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
|||
* Try to set boot address using firmware first
|
||||
* and fall back to boot register if it fails.
|
||||
*/
|
||||
if (call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr))
|
||||
ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
|
||||
if (ret && ret != -ENOSYS)
|
||||
goto fail;
|
||||
if (ret == -ENOSYS) {
|
||||
void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
|
||||
|
||||
if (IS_ERR(boot_reg)) {
|
||||
ret = PTR_ERR(boot_reg);
|
||||
goto fail;
|
||||
}
|
||||
__raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
|
||||
}
|
||||
|
||||
call_firmware_op(cpu_boot, phys_cpu);
|
||||
|
||||
|
@ -163,9 +199,10 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
|||
* now the secondary core is starting up let it run its
|
||||
* calibrations, then wait for it to finish
|
||||
*/
|
||||
fail:
|
||||
spin_unlock(&boot_lock);
|
||||
|
||||
return pen_release != -1 ? -ENOSYS : 0;
|
||||
return pen_release != -1 ? ret : 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -205,6 +242,8 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
|
|||
if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
|
||||
scu_enable(scu_base_addr());
|
||||
|
||||
exynos_smp_prepare_sysram();
|
||||
|
||||
/*
|
||||
* Write the address of secondary startup into the
|
||||
* system-wide flags register. The boot monitor waits
|
||||
|
@ -217,12 +256,21 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
|
|||
for (i = 1; i < max_cpus; ++i) {
|
||||
unsigned long phys_cpu;
|
||||
unsigned long boot_addr;
|
||||
int ret;
|
||||
|
||||
phys_cpu = cpu_logical_map(i);
|
||||
boot_addr = virt_to_phys(exynos4_secondary_startup);
|
||||
|
||||
if (call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr))
|
||||
ret = call_firmware_op(set_cpu_boot_addr, phys_cpu, boot_addr);
|
||||
if (ret && ret != -ENOSYS)
|
||||
break;
|
||||
if (ret == -ENOSYS) {
|
||||
void __iomem *boot_reg = cpu_boot_reg(phys_cpu);
|
||||
|
||||
if (IS_ERR(boot_reg))
|
||||
break;
|
||||
__raw_writel(boot_addr, cpu_boot_reg(phys_cpu));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue