提交 96bda115 编写于 作者: A Arnd Bergmann

Merge tag 's5pv210-dt' of...

Merge tag 's5pv210-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/soc

Merge "Samsung S5PV210 DT support for v3.17" from Kukjin Kim:

- support common clock framework for s5pv210 clock
- add generic PHY driver on s5pv210 to support it via DT
- add dt support for s5pv210-goni, smdkc110, smdkv210 and torbreck boards
- remove board files from mach-s5pv210 and unused codes
- enable multiplatform for s5pv210

* tag 's5pv210-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  clk: samsung: s5pv210: Remove legacy board support
  ARM: SAMSUNG: Remove remaining legacy code
  gpio: samsung: Remove legacy support of S5PV210
  ARM: S5PV210: Enable multi-platform build support
  cpufreq: s5pv210: Make the driver multiplatform aware
  ARM: S5PV210: Register cpufreq platform device
  ARM: S5PV210: move debug-macro.S into the common space
  ARM: S5PV210: Untie PM support from legacy code
  ARM: S5PV210: Remove support for board files
  ARM: dts: Add Device tree for s5pc110/s5pv210 boards
  ARM: dts: Add Device tree for s5pv210 SoC
  ARM: S5PV210: Add board file for boot using Device Tree
  phy: Add support for S5PV210 to the Exynos USB 2.0 PHY driver
  clk: samsung: Add S5PV210 Audio Subsystem clock driver
  ARM: SAMSUNG: Remove legacy clock code
  serial: samsung: Remove support for legacy clock code
  cpufreq: s3c24xx: Remove some dead code
  ARM: S5PV210: Migrate clock handling to Common Clock Framework
  clk: samsung: Add clock driver for S5PV210 and compatible SoCs
Signed-off-by: NArnd Bergmann <arnd@arndb.de>
* Samsung Audio Subsystem Clock Controller
The Samsung Audio Subsystem clock controller generates and supplies clocks
to Audio Subsystem block available in the S5PV210 and compatible SoCs.
Required Properties:
- compatible: should be "samsung,s5pv210-audss-clock".
- reg: physical base address and length of the controller's register set.
- #clock-cells: should be 1.
- clocks:
- hclk: AHB bus clock of the Audio Subsystem.
- xxti: Optional fixed rate PLL reference clock, parent of mout_audss. If
not specified (i.e. xusbxti is used for PLL reference), it is fixed to
a clock named "xxti".
- fout_epll: Input PLL to the AudioSS block, parent of mout_audss.
- iiscdclk0: Optional external i2s clock, parent of mout_i2s. If not
specified, it is fixed to a clock named "iiscdclk0".
- sclk_audio0: Audio bus clock, parent of mout_i2s.
- clock-names: Aliases for the above clocks. They should be "hclk",
"xxti", "fout_epll", "iiscdclk0", and "sclk_audio0" respectively.
All available clocks are defined as preprocessor macros in
dt-bindings/clock/s5pv210-audss-clk.h header and can be used in device
tree sources.
Example: Clock controller node.
clk_audss: clock-controller@c0900000 {
compatible = "samsung,s5pv210-audss-clock";
reg = <0xc0900000 0x1000>;
#clock-cells = <1>;
clock-names = "hclk", "xxti",
"fout_epll", "sclk_audio0";
clocks = <&clocks DOUT_HCLKP>, <&xxti>,
<&clocks FOUT_EPLL>, <&clocks SCLK_AUDIO0>;
};
Example: I2S controller node that consumes the clock generated by the clock
controller. Refer to the standard clock bindings for information
about 'clocks' and 'clock-names' property.
i2s0: i2s@03830000 {
/* ... */
clock-names = "iis", "i2s_opclk0",
"i2s_opclk1";
clocks = <&clk_audss CLK_I2S>, <&clk_audss CLK_I2S>,
<&clk_audss CLK_DOUT_AUD_BUS>;
/* ... */
};
* Samsung S5P6442/S5PC110/S5PV210 Clock Controller
Samsung S5P6442, S5PC110 and S5PV210 SoCs contain integrated clock
controller, which generates and supplies clock to various controllers
within the SoC.
Required Properties:
- compatible: should be one of following:
- "samsung,s5pv210-clock" : for clock controller of Samsung
S5PC110/S5PV210 SoCs,
- "samsung,s5p6442-clock" : for clock controller of Samsung
S5P6442 SoC.
- reg: physical base address of the controller and length of memory mapped
region.
- #clock-cells: should be 1.
All available clocks are defined as preprocessor macros in
dt-bindings/clock/s5pv210.h header and can be used in device tree sources.
External clocks:
There are several clocks that are generated outside the SoC. It is expected
that they are defined using standard clock bindings with following
clock-output-names:
- "xxti": external crystal oscillator connected to XXTI and XXTO pins of
the SoC,
- "xusbxti": external crystal oscillator connected to XUSBXTI and XUSBXTO
pins of the SoC,
A subset of above clocks available on given board shall be specified in
board device tree, including the system base clock, as selected by XOM[0]
pin of the SoC. Refer to generic fixed rate clock bindings
documentation[1] for more information how to specify these clocks.
[1] Documentation/devicetree/bindings/clock/fixed-clock.txt
Example: Clock controller node:
clock: clock-controller@7e00f000 {
compatible = "samsung,s5pv210-clock";
reg = <0x7e00f000 0x1000>;
#clock-cells = <1>;
};
Example: Required external clocks:
xxti: clock-xxti {
compatible = "fixed-clock";
clock-output-names = "xxti";
clock-frequency = <24000000>;
#clock-cells = <0>;
};
xusbxti: clock-xusbxti {
compatible = "fixed-clock";
clock-output-names = "xusbxti";
clock-frequency = <24000000>;
#clock-cells = <0>;
};
Example: UART controller node that consumes the clock generated by the clock
controller (refer to the standard clock bindings for information about
"clocks" and "clock-names" properties):
uart0: serial@e2900000 {
compatible = "samsung,s5pv210-uart";
reg = <0xe2900000 0x400>;
interrupt-parent = <&vic1>;
interrupts = <10>;
clock-names = "uart", "clk_uart_baud0",
"clk_uart_baud1";
clocks = <&clocks UART0>, <&clocks UART0>,
<&clocks SCLK_UART0>;
status = "disabled";
};
...@@ -26,6 +26,7 @@ Samsung S5P/EXYNOS SoC series USB PHY ...@@ -26,6 +26,7 @@ Samsung S5P/EXYNOS SoC series USB PHY
Required properties: Required properties:
- compatible : should be one of the listed compatibles: - compatible : should be one of the listed compatibles:
- "samsung,s5pv210-usb2-phy"
- "samsung,exynos4210-usb2-phy" - "samsung,exynos4210-usb2-phy"
- "samsung,exynos4x12-usb2-phy" - "samsung,exynos4x12-usb2-phy"
- "samsung,exynos5250-usb2-phy" - "samsung,exynos5250-usb2-phy"
......
...@@ -744,25 +744,6 @@ config ARCH_S3C64XX ...@@ -744,25 +744,6 @@ config ARCH_S3C64XX
help help
Samsung S3C64XX series based systems Samsung S3C64XX series based systems
config ARCH_S5PV210
bool "Samsung S5PV210/S5PC110"
select ARCH_HAS_HOLES_MEMORYMODEL
select ARCH_SPARSEMEM_ENABLE
select ATAGS
select CLKDEV_LOOKUP
select CLKSRC_SAMSUNG_PWM
select CPU_V7
select GENERIC_CLOCKEVENTS
select GPIO_SAMSUNG
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_S3C_RTC if RTC_CLASS
select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
select SAMSUNG_ATAGS
help
Samsung S5PV210/S5PC110 series based systems
config ARCH_DAVINCI config ARCH_DAVINCI
bool "TI DaVinci" bool "TI DaVinci"
select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_HAS_HOLES_MEMORYMODEL
...@@ -1500,7 +1481,8 @@ config ARM_PSCI ...@@ -1500,7 +1481,8 @@ config ARM_PSCI
config ARCH_NR_GPIO config ARCH_NR_GPIO
int int
default 1024 if ARCH_SHMOBILE || ARCH_TEGRA default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || \
SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
default 416 if ARCH_SUNXI default 416 if ARCH_SUNXI
default 392 if ARCH_U8500 default 392 if ARCH_U8500
default 352 if ARCH_VT8500 default 352 if ARCH_VT8500
......
...@@ -617,6 +617,7 @@ choice ...@@ -617,6 +617,7 @@ choice
depends on PLAT_SAMSUNG depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX select DEBUG_S3C24XX_UART if ARCH_S3C24XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool "Use Samsung S3C UART 0 for low-level debug" bool "Use Samsung S3C UART 0 for low-level debug"
help help
Say Y here if you want the debug print routines to direct Say Y here if you want the debug print routines to direct
...@@ -627,6 +628,7 @@ choice ...@@ -627,6 +628,7 @@ choice
depends on PLAT_SAMSUNG depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX select DEBUG_S3C24XX_UART if ARCH_S3C24XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool "Use Samsung S3C UART 1 for low-level debug" bool "Use Samsung S3C UART 1 for low-level debug"
help help
Say Y here if you want the debug print routines to direct Say Y here if you want the debug print routines to direct
...@@ -637,6 +639,7 @@ choice ...@@ -637,6 +639,7 @@ choice
depends on PLAT_SAMSUNG depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX select DEBUG_S3C24XX_UART if ARCH_S3C24XX
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool "Use Samsung S3C UART 2 for low-level debug" bool "Use Samsung S3C UART 2 for low-level debug"
help help
Say Y here if you want the debug print routines to direct Say Y here if you want the debug print routines to direct
...@@ -644,8 +647,9 @@ choice ...@@ -644,8 +647,9 @@ choice
by the boot-loader before use. by the boot-loader before use.
config DEBUG_S3C_UART3 config DEBUG_S3C_UART3
depends on PLAT_SAMSUNG && ARCH_EXYNOS depends on PLAT_SAMSUNG && (ARCH_EXYNOS || ARCH_S5PV210)
select DEBUG_EXYNOS_UART select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S5PV210_UART if ARCH_S5PV210
bool "Use Samsung S3C UART 3 for low-level debug" bool "Use Samsung S3C UART 3 for low-level debug"
help help
Say Y here if you want the debug print routines to direct Say Y here if you want the debug print routines to direct
...@@ -945,6 +949,9 @@ config DEBUG_S3C2410_UART ...@@ -945,6 +949,9 @@ config DEBUG_S3C2410_UART
config DEBUG_S3C24XX_UART config DEBUG_S3C24XX_UART
bool bool
config DEBUG_S5PV210_UART
bool
config DEBUG_OMAP2PLUS_UART config DEBUG_OMAP2PLUS_UART
bool bool
depends on ARCH_OMAP2PLUS depends on ARCH_OMAP2PLUS
...@@ -1005,6 +1012,7 @@ config DEBUG_LL_INCLUDE ...@@ -1005,6 +1012,7 @@ config DEBUG_LL_INCLUDE
default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART
default "debug/s5pv210.S" if DEBUG_S5PV210_UART
default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
default "debug/sti.S" if DEBUG_STI_UART default "debug/sti.S" if DEBUG_STI_UART
default "debug/tegra.S" if DEBUG_TEGRA_UART default "debug/tegra.S" if DEBUG_TEGRA_UART
......
...@@ -210,11 +210,11 @@ machine-$(CONFIG_PLAT_SPEAR) += spear ...@@ -210,11 +210,11 @@ machine-$(CONFIG_PLAT_SPEAR) += spear
plat-$(CONFIG_ARCH_EXYNOS) += samsung plat-$(CONFIG_ARCH_EXYNOS) += samsung
plat-$(CONFIG_ARCH_OMAP) += omap plat-$(CONFIG_ARCH_OMAP) += omap
plat-$(CONFIG_ARCH_S3C64XX) += samsung plat-$(CONFIG_ARCH_S3C64XX) += samsung
plat-$(CONFIG_ARCH_S5PV210) += samsung
plat-$(CONFIG_PLAT_IOP) += iop plat-$(CONFIG_PLAT_IOP) += iop
plat-$(CONFIG_PLAT_ORION) += orion plat-$(CONFIG_PLAT_ORION) += orion
plat-$(CONFIG_PLAT_PXA) += pxa plat-$(CONFIG_PLAT_PXA) += pxa
plat-$(CONFIG_PLAT_S3C24XX) += samsung plat-$(CONFIG_PLAT_S3C24XX) += samsung
plat-$(CONFIG_PLAT_S5P) += samsung
plat-$(CONFIG_PLAT_VERSATILE) += versatile plat-$(CONFIG_PLAT_VERSATILE) += versatile
ifeq ($(CONFIG_ARCH_EBSA110),y) ifeq ($(CONFIG_ARCH_EBSA110),y)
...@@ -238,7 +238,7 @@ MACHINE := ...@@ -238,7 +238,7 @@ MACHINE :=
endif endif
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
platdirs := $(patsubst %,arch/arm/plat-%/,$(plat-y)) platdirs := $(patsubst %,arch/arm/plat-%/,$(sort $(plat-y)))
ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y) ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
ifeq ($(KBUILD_SRC),) ifeq ($(KBUILD_SRC),)
......
...@@ -318,6 +318,11 @@ dtb-$(CONFIG_ARCH_QCOM) += \ ...@@ -318,6 +318,11 @@ dtb-$(CONFIG_ARCH_QCOM) += \
dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \ dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \
s3c6410-smdk6410.dtb s3c6410-smdk6410.dtb
dtb-$(CONFIG_ARCH_S5PV210) += s5pv210-aquila.dtb \
s5pv210-goni.dtb \
s5pv210-smdkc110.dtb \
s5pv210-smdkv210.dtb \
s5pv210-torbreck.dtb
dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += r7s72100-genmai.dtb \ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += r7s72100-genmai.dtb \
r8a7740-armadillo800eva.dtb \ r8a7740-armadillo800eva.dtb \
r8a7778-bockw.dtb \ r8a7778-bockw.dtb \
......
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Board device tree source for Samsung Aquila board.
*
* 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 "s5pv210.dtsi"
/ {
model = "Samsung Aquila based on S5PC110";
compatible = "samsung,aquila", "samsung,s5pv210";
aliases {
i2c3 = &i2c_pmic;
};
chosen {
bootargs = "console=ttySAC2,115200n8 root=/dev/mmcblk1p5 rw rootwait ignore_loglevel earlyprintk";
};
memory {
device_type = "memory";
reg = <0x30000000 0x05000000
0x40000000 0x18000000>;
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
vtf_reg: fixed-regulator@0 {
compatible = "regulator-fixed";
reg = <0>;
regulator-name = "V_TF_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
gpios = <&mp05 4 0>;
enable-active-high;
};
pda_reg: fixed-regulator@1 {
compatible = "regulator-fixed";
regulator-name = "VCC_1.8V_PDA";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
reg = <1>;
};
bat_reg: fixed-regulator@2 {
compatible = "regulator-fixed";
regulator-name = "V_BAT";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
reg = <2>;
};
};
i2c_pmic: i2c-pmic {
compatible = "i2c-gpio";
gpios = <&gpj4 0 0>, /* sda */
<&gpj4 3 0>; /* scl */
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
pmic@66 {
compatible = "national,lp3974";
reg = <0x66>;
max8998,pmic-buck1-default-dvs-idx = <0>;
max8998,pmic-buck1-dvs-gpios = <&gph0 3 0>,
<&gph0 4 0>;
max8998,pmic-buck1-dvs-voltage = <1200000>, <1200000>,
<1200000>, <1200000>;
max8998,pmic-buck2-default-dvs-idx = <0>;
max8998,pmic-buck2-dvs-gpio = <&gph0 5 0>;
max8998,pmic-buck2-dvs-voltage = <1200000>, <1200000>;
regulators {
ldo2_reg: LDO2 {
regulator-name = "VALIVE_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
ldo3_reg: LDO3 {
regulator-name = "VUSB+MIPI_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
ldo4_reg: LDO4 {
regulator-name = "VADC_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo5_reg: LDO5 {
regulator-name = "VTF_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo6_reg: LDO6 {
regulator-name = "VCC_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
ldo7_reg: LDO7 {
regulator-name = "VCC_3.0V";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-always-on;
regulator-boot-on;
};
ldo8_reg: LDO8 {
regulator-name = "VUSB+VDAC_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
ldo9_reg: LDO9 {
regulator-name = "VCC+VCAM_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo10_reg: LDO10 {
regulator-name = "VPLL_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
regulator-boot-on;
};
ldo11_reg: LDO11 {
regulator-name = "CAM_IO_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo12_reg: LDO12 {
regulator-name = "CAM_ISP_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
ldo13_reg: LDO13 {
regulator-name = "CAM_A_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
ldo14_reg: LDO14 {
regulator-name = "CAM_CIF_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo15_reg: LDO15 {
regulator-name = "CAM_AF_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
ldo16_reg: LDO16 {
regulator-name = "VMIPI_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo17_reg: LDO17 {
regulator-name = "CAM_8M_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
buck1_reg: BUCK1 {
regulator-name = "VARM_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
buck2_reg: BUCK2 {
regulator-name = "VINT_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
buck3_reg: BUCK3 {
regulator-name = "VCC_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
buck4_reg: BUCK4 {
regulator-name = "CAM_CORE_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
vichg_reg: ENVICHG {
regulator-name = "VICHG";
};
safeout1_reg: ESAFEOUT1 {
regulator-name = "SAFEOUT1";
regulator-always-on;
};
safeout2_reg: ESAFEOUT2 {
regulator-name = "SAFEOUT2";
regulator-boot-on;
};
};
};
};
gpio-keys {
compatible = "gpio-keys";
power-key {
gpios = <&gph2 6 1>;
linux,code = <KEY_POWER>;
label = "power";
debounce-interval = <1>;
gpio-key,wakeup;
};
};
};
&xusbxti {
clock-frequency = <24000000>;
};
&keypad {
linux,input-no-autorepeat;
linux,input-wakeup;
samsung,keypad-num-rows = <3>;
samsung,keypad-num-columns = <3>;
pinctrl-names = "default";
pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>,
<&keypad_col0>, <&keypad_col1>, <&keypad_col2>;
status = "okay";
key_1 {
keypad,row = <0>;
keypad,column = <1>;
linux,code = <KEY_CONNECT>;
};
key_2 {
keypad,row = <0>;
keypad,column = <2>;
linux,code = <KEY_BACK>;
};
key_3 {
keypad,row = <1>;
keypad,column = <1>;
linux,code = <KEY_CAMERA_FOCUS>;
};
key_4 {
keypad,row = <1>;
keypad,column = <2>;
linux,code = <KEY_VOLUMEUP>;
};
key_5 {
keypad,row = <2>;
keypad,column = <1>;
linux,code = <KEY_CAMERA>;
};
key_6 {
keypad,row = <2>;
keypad,column = <2>;
linux,code = <KEY_VOLUMEDOWN>;
};
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&sdhci0 {
bus-width = <4>;
non-removable;
status = "okay";
vmmc-supply = <&ldo5_reg>;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>;
pinctrl-names = "default";
};
&sdhci2 {
bus-width = <4>;
cd-gpios = <&gph3 4 1>;
vmmc-supply = <&vtf_reg>;
cd-inverted;
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &t_flash_detect>;
pinctrl-names = "default";
status = "okay";
};
&onenand {
status = "okay";
};
&hsotg {
vusb_a-supply = <&ldo3_reg>;
vusb_d-supply = <&ldo8_reg>;
status = "okay";
};
&usbphy {
status = "okay";
};
&fimd {
pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
pinctrl-names = "default";
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing {
clock-frequency = <0>;
hactive = <800>;
vactive = <480>;
hfront-porch = <16>;
hback-porch = <16>;
hsync-len = <2>;
vback-porch = <3>;
vfront-porch = <28>;
vsync-len = <1>;
};
};
};
&pinctrl0 {
t_flash_detect: t-flash-detect {
samsung,pins = "gph3-4";
samsung,pin-function = <0>;
samsung,pin-pud = <0>;
};
};
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Board device tree source for Samsung Goni board.
*
* 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 "s5pv210.dtsi"
/ {
model = "Samsung Goni based on S5PC110";
compatible = "samsung,goni", "samsung,s5pv210";
aliases {
i2c3 = &i2c_pmic;
};
chosen {
bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p5 rw rootwait ignore_loglevel earlyprintk";
};
memory {
device_type = "memory";
reg = <0x30000000 0x05000000
0x40000000 0x10000000
0x50000000 0x08000000>;
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
vtf_reg: fixed-regulator@0 {
compatible = "regulator-fixed";
regulator-name = "V_TF_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
reg = <0>;
gpios = <&mp05 4 0>;
enable-active-high;
};
pda_reg: fixed-regulator@1 {
compatible = "regulator-fixed";
regulator-name = "VCC_1.8V_PDA";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
reg = <1>;
};
bat_reg: fixed-regulator@2 {
compatible = "regulator-fixed";
regulator-name = "V_BAT";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
reg = <2>;
};
tsp_reg: fixed-regulator@3 {
compatible = "regulator-fixed";
regulator-name = "TSP_VDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
reg = <3>;
gpios = <&gpj1 3 0>;
enable-active-high;
};
};
i2c_pmic: i2c-pmic {
compatible = "i2c-gpio";
gpios = <&gpj4 0 0>, /* sda */
<&gpj4 3 0>; /* scl */
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
pmic@66 {
compatible = "national,lp3974";
reg = <0x66>;
max8998,pmic-buck1-default-dvs-idx = <0>;
max8998,pmic-buck1-dvs-gpios = <&gph0 3 0>,
<&gph0 4 0>;
max8998,pmic-buck1-dvs-voltage = <1200000>, <1200000>,
<1200000>, <1200000>;
max8998,pmic-buck2-default-dvs-idx = <0>;
max8998,pmic-buck2-dvs-gpio = <&gph0 5 0>;
max8998,pmic-buck2-dvs-voltage = <1200000>, <1200000>;
regulators {
ldo2_reg: LDO2 {
regulator-name = "VALIVE_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
ldo3_reg: LDO3 {
regulator-name = "VUSB+MIPI_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-always-on;
};
ldo4_reg: LDO4 {
regulator-name = "VADC_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo5_reg: LDO5 {
regulator-name = "VTF_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo6_reg: LDO6 {
regulator-name = "VCC_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo7_reg: LDO7 {
regulator-name = "VLCD_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
ldo8_reg: LDO8 {
regulator-name = "VUSB+VDAC_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo9_reg: LDO9 {
regulator-name = "VCC+VCAM_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo10_reg: LDO10 {
regulator-name = "VPLL_1.1V";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
regulator-boot-on;
};
ldo11_reg: LDO11 {
regulator-name = "CAM_IO_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo12_reg: LDO12 {
regulator-name = "CAM_ISP_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
ldo13_reg: LDO13 {
regulator-name = "CAM_A_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
ldo14_reg: LDO14 {
regulator-name = "CAM_CIF_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo15_reg: LDO15 {
regulator-name = "CAM_AF_3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ldo16_reg: LDO16 {
regulator-name = "VMIPI_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo17_reg: LDO17 {
regulator-name = "CAM_8M_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
buck1_reg: BUCK1 {
regulator-name = "VARM_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
buck2_reg: BUCK2 {
regulator-name = "VINT_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
buck3_reg: BUCK3 {
regulator-name = "VCC_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
buck4_reg: BUCK4 {
regulator-name = "CAM_CORE_1.2V";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
};
};
};
};
gpio-keys {
compatible = "gpio-keys";
power-key {
gpios = <&gph2 6 1>;
linux,code = <KEY_POWER>;
label = "power";
debounce-interval = <1>;
gpio-key,wakeup;
};
};
};
&xusbxti {
clock-frequency = <24000000>;
};
&keypad {
linux,input-no-autorepeat;
linux,input-wakeup;
samsung,keypad-num-rows = <3>;
samsung,keypad-num-columns = <3>;
pinctrl-names = "default";
pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>,
<&keypad_col0>, <&keypad_col1>, <&keypad_col2>;
status = "okay";
key_1 {
keypad,row = <0>;
keypad,column = <1>;
linux,code = <KEY_CONNECT>;
};
key_2 {
keypad,row = <0>;
keypad,column = <2>;
linux,code = <KEY_BACK>;
};
key_3 {
keypad,row = <1>;
keypad,column = <1>;
linux,code = <KEY_CAMERA_FOCUS>;
};
key_4 {
keypad,row = <1>;
keypad,column = <2>;
linux,code = <KEY_VOLUMEUP>;
};
key_5 {
keypad,row = <2>;
keypad,column = <1>;
linux,code = <KEY_CAMERA>;
};
key_6 {
keypad,row = <2>;
keypad,column = <2>;
linux,code = <KEY_VOLUMEDOWN>;
};
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&sdhci0 {
bus-width = <4>;
non-removable;
vmmc-supply = <&ldo5_reg>;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus1 &sd0_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci2 {
bus-width = <4>;
cd-gpios = <&gph3 4 1>;
vmmc-supply = <&vtf_reg>;
cd-inverted;
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
pinctrl-names = "default";
status = "okay";
};
&hsotg {
vusb_a-supply = <&ldo3_reg>;
vusb_d-supply = <&ldo8_reg>;
status = "okay";
};
&usbphy {
status = "okay";
};
&i2c2 {
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <400000>;
samsung,i2c-slave-addr = <0x10>;
status = "okay";
tsp@4a {
compatible = "atmel,maxtouch";
reg = <0x4a>;
interrupt-parent = <&gpj0>;
interrupts = <5 2>;
atmel,x-line = <17>;
atmel,y-line = <11>;
atmel,x-size = <800>;
atmel,y-size = <480>;
atmel,burst-length = <0x21>;
atmel,threshold = <0x28>;
atmel,orientation = <1>;
vdd-supply = <&tsp_reg>;
};
};
&i2c0 {
samsung,i2c-sda-delay = <100>;
samsung,i2c-max-bus-freq = <100000>;
samsung,i2c-slave-addr = <0x10>;
status = "okay";
noon010pc30: sensor@30 {
compatible = "siliconfile,noon010pc30";
reg = <0x30>;
vddio-supply = <&ldo11_reg>;
vdda-supply = <&ldo13_reg>;
vdd_core-supply = <&ldo14_reg>;
clock-frequency = <16000000>;
clocks = <&clock_cam 0>;
clock-names = "mclk";
nreset-gpios = <&gpb 2 0>;
nstby-gpios = <&gpb 0 0>;
port {
noon010pc30_ep: endpoint {
remote-endpoint = <&fimc0_ep>;
bus-width = <8>;
hsync-active = <0>;
vsync-active = <1>;
pclk-sample = <1>;
};
};
};
};
&camera {
pinctrl-0 = <&cam_port_a_io &cam_port_a_clk_active>;
pinctrl-1 = <&cam_port_a_io &cam_port_a_clk_idle>;
pinctrl-names = "default", "idle";
parallel-ports {
#address-cells = <1>;
#size-cells = <0>;
/* camera A input */
port@1 {
reg = <1>;
fimc0_ep: endpoint {
remote-endpoint = <&noon010pc30_ep>;
bus-width = <8>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
};
};
};
};
&fimd {
pinctrl-0 = <&lcd_clk &lcd_data24>;
pinctrl-names = "default";
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing {
/* 480x800@55Hz */
clock-frequency = <23439570>;
hactive = <480>;
hfront-porch = <16>;
hback-porch = <16>;
hsync-len = <2>;
vactive = <800>;
vback-porch = <2>;
vfront-porch = <28>;
vsync-len = <1>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
};
&onenand {
status = "okay";
};
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Samsung's S5PV210 SoC device nodes are listed in this file. S5PV210
* based board files can include this file and provide values for board specfic
* bindings.
*
* Note: This file does not include device nodes for all the controllers in
* S5PV210 SoC. As device tree coverage for S5PV210 increases, additional
* nodes can be added to this file.
*
* 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.
*/
&pinctrl0 {
gpa0: gpa0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpa1: gpa1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpb: gpb {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpc0: gpc0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpc1: gpc1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpd0: gpd0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpd1: gpd1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpe0: gpe0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpe1: gpe1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpf0: gpf0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpf1: gpf1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpf2: gpf2 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpf3: gpf3 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpg0: gpg0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpg1: gpg1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpg2: gpg2 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpg3: gpg3 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpj0: gpj0 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpj1: gpj1 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpj2: gpj2 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpj3: gpj3 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpj4: gpj4 {
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
gpgi: gpgi {
gpio-controller;
#gpio-cells = <2>;
};
mp01: mp01 {
gpio-controller;
#gpio-cells = <2>;
};
mp02: mp02 {
gpio-controller;
#gpio-cells = <2>;
};
mp03: mp03 {
gpio-controller;
#gpio-cells = <2>;
};
mp04: mp04 {
gpio-controller;
#gpio-cells = <2>;
};
mp05: mp05 {
gpio-controller;
#gpio-cells = <2>;
};
mp06: mp06 {
gpio-controller;
#gpio-cells = <2>;
};
mp07: mp07 {
gpio-controller;
#gpio-cells = <2>;
};
gph0: gph0 {
gpio-controller;
interrupt-controller;
interrupt-parent = <&vic0>;
interrupts = <0>, <1>, <2>, <3>,
<4>, <5>, <6>, <7>;
#gpio-cells = <2>;
#interrupt-cells = <2>;
};
gph1: gph1 {
gpio-controller;
interrupt-controller;
interrupt-parent = <&vic0>;
interrupts = <8>, <9>, <10>, <11>,
<12>, <13>, <14>, <15>;
#gpio-cells = <2>;
#interrupt-cells = <2>;
};
gph2: gph2 {
gpio-controller;
#gpio-cells = <2>;
#interrupt-cells = <2>;
};
gph3: gph3 {
gpio-controller;
#gpio-cells = <2>;
#interrupt-cells = <2>;
};
uart0_data: uart0-data {
samsung,pins = "gpa0-0", "gpa0-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart0_fctl: uart0-fctl {
samsung,pins = "gpa0-2", "gpa0-3";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart1_data: uart1-data {
samsung,pins = "gpa0-4", "gpa0-5";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart1_fctl: uart1-fctl {
samsung,pins = "gpa0-6", "gpa0-7";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart2_data: uart2-data {
samsung,pins = "gpa1-0", "gpa1-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart2_fctl: uart2-fctl {
samsung,pins = "gpa1-2", "gpa1-3";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart3_data: uart3-data {
samsung,pins = "gpa1-2", "gpa1-3";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
uart_audio: uart-audio {
samsung,pins = "gpa1-2", "gpa1-3";
samsung,pin-function = <4>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
spi0_bus: spi0-bus {
samsung,pins = "gpb-0", "gpb-2", "gpb-3";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <0>;
};
spi1_bus: spi1-bus {
samsung,pins = "gpb-4", "gpb-6", "gpb-7";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <0>;
};
i2s0_bus: i2s0-bus {
samsung,pins = "gpi-0", "gpi-1", "gpi-2", "gpi-3",
"gpi-4", "gpi-5", "gpi-6";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
i2s1_bus: i2s1-bus {
samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
"gpc0-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
i2s2_bus: i2s2-bus {
samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
"gpc1-4";
samsung,pin-function = <4>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
pcm1_bus: pcm1-bus {
samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
"gpc0-4";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
ac97_bus: ac97-bus {
samsung,pins = "gpc0-0", "gpc0-1", "gpc0-2", "gpc0-3",
"gpc0-4";
samsung,pin-function = <4>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
i2s2_bus: i2s2-bus {
samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
"gpc1-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
pcm2_bus: pcm2-bus {
samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
"gpc1-4";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
spdif_bus: spdif-bus {
samsung,pins = "gpc1-0", "gpc1-1";
samsung,pin-function = <4>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
spi2_bus: spi2-bus {
samsung,pins = "gpc1-1", "gpc1-2", "gpc1-3", "gpc1-4";
samsung,pin-function = <5>;
samsung,pin-pud = <2>;
samsung,pin-drv = <0>;
};
i2c0_bus: i2c0-bus {
samsung,pins = "gpd1-0", "gpd1-1";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <0>;
};
i2c1_bus: i2c1-bus {
samsung,pins = "gpd1-2", "gpd1-3";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <0>;
};
i2c2_bus: i2c2-bus {
samsung,pins = "gpd1-4", "gpd1-5";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <0>;
};
pwm0_out: pwm0-out {
samsung,pins = "gpd0-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
pwm1_out: pwm1-out {
samsung,pins = "gpd0-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
pwm2_out: pwm2-out {
samsung,pins = "gpd0-2";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
pwm3_out: pwm3-out {
samsung,pins = "gpd0-3";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row0: keypad-row-0 {
samsung,pins = "gph3-0";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row1: keypad-row-1 {
samsung,pins = "gph3-1";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row2: keypad-row-2 {
samsung,pins = "gph3-2";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row3: keypad-row-3 {
samsung,pins = "gph3-3";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row4: keypad-row-4 {
samsung,pins = "gph3-4";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row5: keypad-row-5 {
samsung,pins = "gph3-5";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row6: keypad-row-6 {
samsung,pins = "gph3-6";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_row7: keypad-row-7 {
samsung,pins = "gph3-7";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col0: keypad-col-0 {
samsung,pins = "gph2-0";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col1: keypad-col-1 {
samsung,pins = "gph2-1";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col2: keypad-col-2 {
samsung,pins = "gph2-2";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col3: keypad-col-3 {
samsung,pins = "gph2-3";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col4: keypad-col-4 {
samsung,pins = "gph2-4";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col5: keypad-col-5 {
samsung,pins = "gph2-5";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col6: keypad-col-6 {
samsung,pins = "gph2-6";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
keypad_col7: keypad-col-7 {
samsung,pins = "gph2-7";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
sd0_clk: sd0-clk {
samsung,pins = "gpg0-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd0_cmd: sd0-cmd {
samsung,pins = "gpg0-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd0_cd: sd0-cd {
samsung,pins = "gpg0-2";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd0_bus1: sd0-bus-width1 {
samsung,pins = "gpg0-3";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd0_bus4: sd0-bus-width4 {
samsung,pins = "gpg0-3", "gpg0-4", "gpg0-5", "gpg0-6";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd0_bus8: sd0-bus-width8 {
samsung,pins = "gpg1-3", "gpg1-4", "gpg1-5", "gpg1-6";
samsung,pin-function = <3>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd1_clk: sd1-clk {
samsung,pins = "gpg1-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd1_cmd: sd1-cmd {
samsung,pins = "gpg1-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd1_cd: sd1-cd {
samsung,pins = "gpg1-2";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd1_bus1: sd1-bus-width1 {
samsung,pins = "gpg1-3";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd1_bus4: sd1-bus-width4 {
samsung,pins = "gpg1-3", "gpg1-4", "gpg1-5", "gpg1-6";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd2_clk: sd2-clk {
samsung,pins = "gpg2-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd2_cmd: sd2-cmd {
samsung,pins = "gpg2-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd2_cd: sd2-cd {
samsung,pins = "gpg2-2";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd2_bus1: sd2-bus-width1 {
samsung,pins = "gpg2-3";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd2_bus4: sd2-bus-width4 {
samsung,pins = "gpg2-3", "gpg2-4", "gpg2-5", "gpg2-6";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd2_bus8: sd2-bus-width8 {
samsung,pins = "gpg3-3", "gpg3-4", "gpg3-5", "gpg3-6";
samsung,pin-function = <3>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd3_clk: sd3-clk {
samsung,pins = "gpg3-0";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd3_cmd: sd3-cmd {
samsung,pins = "gpg3-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
sd3_cd: sd3-cd {
samsung,pins = "gpg3-2";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd3_bus1: sd3-bus-width1 {
samsung,pins = "gpg3-3";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
sd3_bus4: sd3-bus-width4 {
samsung,pins = "gpg3-3", "gpg3-4", "gpg3-5", "gpg3-6";
samsung,pin-function = <2>;
samsung,pin-pud = <2>;
samsung,pin-drv = <3>;
};
eint0: ext-int0 {
samsung,pins = "gph0-0";
samsung,pin-function = <0xf>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
eint8: ext-int8 {
samsung,pins = "gph1-0";
samsung,pin-function = <0xf>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
eint15: ext-int15 {
samsung,pins = "gph1-7";
samsung,pin-function = <0xf>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
eint16: ext-int16 {
samsung,pins = "gph2-0";
samsung,pin-function = <0xf>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
eint31: ext-int31 {
samsung,pins = "gph3-7";
samsung,pin-function = <0xf>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
cam_port_a_io: cam-port-a-io {
samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
"gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
"gpe1-0", "gpe1-1", "gpe1-2", "gpe1-4";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
cam_port_a_clk_active: cam-port-a-clk-active {
samsung,pins = "gpe1-3";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
cam_port_a_clk_idle: cam-port-a-clk-idle {
samsung,pins = "gpe1-3";
samsung,pin-function = <0>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
};
cam_port_b_io: cam-port-b-io {
samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3",
"gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7",
"gpj1-0", "gpj1-1", "gpj1-2", "gpj1-4";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
cam_port_b_clk_active: cam-port-b-clk-active {
samsung,pins = "gpj1-3";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <3>;
};
cam_port_b_clk_idle: cam-port-b-clk-idle {
samsung,pins = "gpj1-3";
samsung,pin-function = <0>;
samsung,pin-pud = <1>;
samsung,pin-drv = <0>;
};
lcd_ctrl: lcd-ctrl {
samsung,pins = "gpd0-0", "gpd0-1";
samsung,pin-function = <3>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
lcd_sync: lcd-sync {
samsung,pins = "gpf0-0", "gpf0-1";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
lcd_clk: lcd-clk {
samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
lcd_data24: lcd-data-width24 {
samsung,pins = "gpf0-4", "gpf0-5", "gpf0-6", "gpf0-7",
"gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3",
"gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7",
"gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
"gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7",
"gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
samsung,pin-function = <2>;
samsung,pin-pud = <0>;
samsung,pin-drv = <0>;
};
};
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Board device tree source for YIC System SMDC110 board.
*
* NOTE: This file is completely based on original board file for mach-smdkc110
* available in Linux 3.15 and intends to provide equivalent level of hardware
* support. Due to lack of hardware, _no_ testing has been performed.
*
* 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 "s5pv210.dtsi"
/ {
model = "YIC System SMDKC110 based on S5PC110";
compatible = "yic,smdkc110", "samsung,s5pv210";
chosen {
bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk";
};
memory {
device_type = "memory";
reg = <0x20000000 0x20000000>;
};
};
&xusbxti {
clock-frequency = <24000000>;
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&rtc {
status = "okay";
};
&i2c0 {
status = "okay";
audio-codec@1b {
compatible = "wlf,wm8580";
reg = <0x1b>;
};
eeprom@50 {
compatible = "atmel,24c08";
reg = <0x50>;
};
};
&i2s0 {
status = "okay";
};
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Board device tree source for YIC System SMDV210 board.
*
* NOTE: This file is completely based on original board file for mach-smdkv210
* available in Linux 3.15 and intends to provide equivalent level of hardware
* support. Due to lack of hardware, _no_ testing has been performed.
*
* 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 "s5pv210.dtsi"
/ {
model = "YIC System SMDKV210 based on S5PV210";
compatible = "yic,smdkv210", "samsung,s5pv210";
chosen {
bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk";
};
memory {
device_type = "memory";
reg = <0x20000000 0x40000000>;
};
ethernet@18000000 {
compatible = "davicom,dm9000";
reg = <0xA8000000 0x2 0xA8000002 0x2>;
interrupt-parent = <&gph1>;
interrupts = <1 4>;
local-mac-address = [00 00 de ad be ef];
davicom,no-eeprom;
};
backlight {
compatible = "pwm-backlight";
pwms = <&pwm 3 5000000 0>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <6>;
pinctrl-names = "default";
pinctrl-0 = <&pwm3_out>;
};
};
&xusbxti {
clock-frequency = <24000000>;
};
&keypad {
linux,input-no-autorepeat;
linux,input-wakeup;
samsung,keypad-num-rows = <8>;
samsung,keypad-num-columns = <8>;
pinctrl-names = "default";
pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>,
<&keypad_row3>, <&keypad_row4>, <&keypad_row5>,
<&keypad_row6>, <&keypad_row7>,
<&keypad_col0>, <&keypad_col1>, <&keypad_col2>,
<&keypad_col3>, <&keypad_col4>, <&keypad_col5>,
<&keypad_col6>, <&keypad_col7>;
status = "okay";
key_1 {
keypad,row = <0>;
keypad,column = <3>;
linux,code = <KEY_1>;
};
key_2 {
keypad,row = <0>;
keypad,column = <4>;
linux,code = <KEY_2>;
};
key_3 {
keypad,row = <0>;
keypad,column = <5>;
linux,code = <KEY_3>;
};
key_4 {
keypad,row = <0>;
keypad,column = <6>;
linux,code = <KEY_4>;
};
key_5 {
keypad,row = <0
>;
keypad,column = <7>;
linux,code = <KEY_5>;
};
key_6 {
keypad,row = <1>;
keypad,column = <3>;
linux,code = <KEY_A>;
};
key_7 {
keypad,row = <1>;
keypad,column = <4>;
linux,code = <KEY_B>;
};
key_8 {
keypad,row = <1>;
keypad,column = <5>;
linux,code = <KEY_C>;
};
key_9 {
keypad,row = <1>;
keypad,column = <6>;
linux,code = <KEY_D>;
};
key_10 {
keypad,row = <1>;
keypad,column = <7>;
linux,code = <KEY_E>;
};
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&rtc {
status = "okay";
};
&sdhci0 {
bus-width = <4>;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus1 &sd0_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci1 {
bus-width = <4>;
pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus1 &sd1_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci2 {
bus-width = <4>;
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci3 {
bus-width = <4>;
pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_cd &sd3_bus1 &sd3_bus4>;
pinctrl-names = "default";
status = "okay";
};
&hsotg {
status = "okay";
};
&usbphy {
status = "okay";
};
&fimd {
pinctrl-0 = <&lcd_clk &lcd_data24>;
pinctrl-names = "default";
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing@0 {
/* 800x480@60Hz */
clock-frequency = <24373920>;
hactive = <800>;
vactive = <480>;
hfront-porch = <8>;
hback-porch = <13>;
hsync-len = <3>;
vback-porch = <7>;
vfront-porch = <5>;
vsync-len = <1>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <1>;
};
};
};
&pwm {
samsung,pwm-outputs = <3>;
};
&i2c0 {
status = "okay";
audio-codec@1b {
compatible = "wlf,wm8580";
reg = <0x1b>;
};
eeprom@50 {
compatible = "atmel,24c08";
reg = <0x50>;
};
};
&i2s0 {
status = "okay";
};
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Board device tree source for Torbreck board.
*
* NOTE: This file is completely based on original board file for mach-torbreck
* available in Linux 3.15 and intends to provide equivalent level of hardware
* support. Due to lack of hardware, _no_ testing has been performed.
*
* 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 "s5pv210.dtsi"
/ {
model = "aESOP Torbreck based on S5PV210";
compatible = "aesop,torbreck", "samsung,s5pv210";
chosen {
bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk";
};
memory {
device_type = "memory";
reg = <0x20000000 0x20000000>;
};
};
&xusbxti {
clock-frequency = <24000000>;
};
&uart0 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&rtc {
status = "okay";
};
&sdhci0 {
bus-width = <4>;
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus1 &sd0_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci1 {
bus-width = <4>;
pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus1 &sd1_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci2 {
bus-width = <4>;
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4>;
pinctrl-names = "default";
status = "okay";
};
&sdhci3 {
bus-width = <4>;
pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_cd &sd3_bus1 &sd3_bus4>;
pinctrl-names = "default";
status = "okay";
};
&i2s0 {
status = "okay";
};
/*
* Samsung's S5PV210 SoC device tree source
*
* Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
*
* Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
* Tomasz Figa <t.figa@samsung.com>
*
* Samsung's S5PV210 SoC device nodes are listed in this file. S5PV210
* based board files can include this file and provide values for board specfic
* bindings.
*
* Note: This file does not include device nodes for all the controllers in
* S5PV210 SoC. As device tree coverage for S5PV210 increases, additional
* nodes can be added to this file.
*
* 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.
*/
#include "skeleton.dtsi"
#include <dt-bindings/clock/s5pv210.h>
#include <dt-bindings/clock/s5pv210-audss.h>
/ {
aliases {
csis0 = &csis0;
fimc0 = &fimc0;
fimc1 = &fimc1;
fimc2 = &fimc2;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2s0 = &i2s0;
i2s1 = &i2s1;
i2s2 = &i2s2;
pinctrl0 = &pinctrl0;
spi0 = &spi0;
spi1 = &spi1;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a8";
reg = <0>;
};
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
external-clocks {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
xxti: oscillator@0 {
compatible = "fixed-clock";
reg = <0>;
clock-frequency = <0>;
clock-output-names = "xxti";
#clock-cells = <0>;
};
xusbxti: oscillator@1 {
compatible = "fixed-clock";
reg = <1>;
clock-frequency = <0>;
clock-output-names = "xusbxti";
#clock-cells = <0>;
};
};
onenand: onenand@b0000000 {
compatible = "samsung,s5pv210-onenand";
reg = <0xb0600000 0x2000>,
<0xb0000000 0x20000>,
<0xb0040000 0x20000>;
interrupt-parent = <&vic1>;
interrupts = <31>;
clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
clock-names = "bus", "onenand";
#address-cells = <1>;
#size-cells = <1>;
status = "disabled";
};
chipid@e0000000 {
compatible = "samsung,s5pv210-chipid";
reg = <0xe0000000 0x1000>;
};
clocks: clock-controller@e0100000 {
compatible = "samsung,s5pv210-clock", "simple-bus";
reg = <0xe0100000 0x10000>;
clock-names = "xxti", "xusbxti";
clocks = <&xxti>, <&xusbxti>;
#clock-cells = <1>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
pmu_syscon: syscon@e0108000 {
compatible = "samsung-s5pv210-pmu", "syscon";
reg = <0xe0108000 0x8000>;
};
};
pinctrl0: pinctrl@e0200000 {
compatible = "samsung,s5pv210-pinctrl";
reg = <0xe0200000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <30>;
wakeup-interrupt-controller {
compatible = "samsung,exynos4210-wakeup-eint";
interrupts = <16>;
interrupt-parent = <&vic0>;
};
};
amba {
#address-cells = <1>;
#size-cells = <1>;
compatible = "arm,amba-bus";
ranges;
pdma0: dma@e0900000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0xe0900000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <19>;
clocks = <&clocks CLK_PDMA0>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
#dma-requests = <32>;
};
pdma1: dma@e0a00000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0xe0a00000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <20>;
clocks = <&clocks CLK_PDMA1>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
#dma-requests = <32>;
};
};
spi0: spi@e1300000 {
compatible = "samsung,s5pv210-spi";
reg = <0xe1300000 0x1000>;
interrupt-parent = <&vic1>;
interrupts = <15>;
dmas = <&pdma0 7>, <&pdma0 6>;
dma-names = "tx", "rx";
clocks = <&clocks SCLK_SPI0>, <&clocks CLK_SPI0>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi0_bus>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
spi1: spi@e1400000 {
compatible = "samsung,s5pv210-spi";
reg = <0xe1400000 0x1000>;
interrupt-parent = <&vic1>;
interrupts = <16>;
dmas = <&pdma1 7>, <&pdma1 6>;
dma-names = "tx", "rx";
clocks = <&clocks SCLK_SPI1>, <&clocks CLK_SPI1>;
clock-names = "spi", "spi_busclk0";
pinctrl-names = "default";
pinctrl-0 = <&spi1_bus>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
keypad: keypad@e1600000 {
compatible = "samsung,s5pv210-keypad";
reg = <0xe1600000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <25>;
clocks = <&clocks CLK_KEYIF>;
clock-names = "keypad";
status = "disabled";
};
i2c0: i2c@e1800000 {
compatible = "samsung,s3c2440-i2c";
reg = <0xe1800000 0x1000>;
interrupt-parent = <&vic1>;
interrupts = <14>;
clocks = <&clocks CLK_I2C0>;
clock-names = "i2c";
pinctrl-names = "default";
pinctrl-0 = <&i2c0_bus>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
i2c2: i2c@e1a00000 {
compatible = "samsung,s3c2440-i2c";
reg = <0xe1a00000 0x1000>;
interrupt-parent = <&vic1>;
interrupts = <19>;
clocks = <&clocks CLK_I2C2>;
clock-names = "i2c";
pinctrl-0 = <&i2c2_bus>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
audio-subsystem {
compatible = "samsung,s5pv210-audss", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
clk_audss: clock-controller@eee10000 {
compatible = "samsung,s5pv210-audss-clock";
reg = <0xeee10000 0x1000>;
clock-names = "hclk", "xxti",
"fout_epll",
"sclk_audio0";
clocks = <&clocks DOUT_HCLKP>, <&xxti>,
<&clocks FOUT_EPLL>,
<&clocks SCLK_AUDIO0>;
#clock-cells = <1>;
};
i2s0: i2s@eee30000 {
compatible = "samsung,s5pv210-i2s";
reg = <0xeee30000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <16>;
dma-names = "rx", "tx", "tx-sec";
dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
clock-names = "iis",
"i2s_opclk0",
"i2s_opclk1";
clocks = <&clk_audss CLK_I2S>,
<&clk_audss CLK_I2S>,
<&clk_audss CLK_DOUT_AUD_BUS>;
samsung,idma-addr = <0xc0010000>;
pinctrl-names = "default";
pinctrl-0 = <&i2s0_bus>;
#sound-dai-cells = <0>;
status = "disabled";
};
};
i2s1: i2s@e2100000 {
compatible = "samsung,s3c6410-i2s";
reg = <0xe2100000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <17>;
dma-names = "rx", "tx";
dmas = <&pdma1 12>, <&pdma1 13>;
clock-names = "iis", "i2s_opclk0";
clocks = <&clocks CLK_I2S1>, <&clocks SCLK_AUDIO1>;
pinctrl-names = "default";
pinctrl-0 = <&i2s1_bus>;
#sound-dai-cells = <0>;
status = "disabled";
};
i2s2: i2s@e2a00000 {
compatible = "samsung,s3c6410-i2s";
reg = <0xe2a00000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <18>;
dma-names = "rx", "tx";
dmas = <&pdma1 14>, <&pdma1 15>;
clock-names = "iis", "i2s_opclk0";
clocks = <&clocks CLK_I2S2>, <&clocks SCLK_AUDIO2>;
pinctrl-names = "default";
pinctrl-0 = <&i2s2_bus>;
#sound-dai-cells = <0>;
status = "disabled";
};
pwm: pwm@e2500000 {
compatible = "samsung,s5pc100-pwm";
reg = <0xe2500000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <21>, <22>, <23>, <24>, <25>;
clock-names = "timers";
clocks = <&clocks CLK_PWM>;
#pwm-cells = <3>;
};
watchdog: watchdog@e2700000 {
compatible = "samsung,s3c2410-wdt";
reg = <0xe2700000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <26>;
clock-names = "watchdog";
clocks = <&clocks CLK_WDT>;
};
rtc: rtc@e2800000 {
compatible = "samsung,s3c6410-rtc";
reg = <0xe2800000 0x100>;
interrupt-parent = <&vic0>;
interrupts = <28>, <29>;
clocks = <&clocks CLK_RTC>;
clock-names = "rtc";
status = "disabled";
};
uart0: serial@e2900000 {
compatible = "samsung,s5pv210-uart";
reg = <0xe2900000 0x400>;
interrupt-parent = <&vic1>;
interrupts = <10>;
clock-names = "uart", "clk_uart_baud0",
"clk_uart_baud1";
clocks = <&clocks CLK_UART0>, <&clocks CLK_UART0>,
<&clocks SCLK_UART0>;
status = "disabled";
};
uart1: serial@e2900400 {
compatible = "samsung,s5pv210-uart";
reg = <0xe2900400 0x400>;
interrupt-parent = <&vic1>;
interrupts = <11>;
clock-names = "uart", "clk_uart_baud0",
"clk_uart_baud1";
clocks = <&clocks CLK_UART1>, <&clocks CLK_UART1>,
<&clocks SCLK_UART1>;
status = "disabled";
};
uart2: serial@e2900800 {
compatible = "samsung,s5pv210-uart";
reg = <0xe2900800 0x400>;
interrupt-parent = <&vic1>;
interrupts = <12>;
clock-names = "uart", "clk_uart_baud0",
"clk_uart_baud1";
clocks = <&clocks CLK_UART2>, <&clocks CLK_UART2>,
<&clocks SCLK_UART2>;
status = "disabled";
};
uart3: serial@e2900c00 {
compatible = "samsung,s5pv210-uart";
reg = <0xe2900c00 0x400>;
interrupt-parent = <&vic1>;
interrupts = <13>;
clock-names = "uart", "clk_uart_baud0",
"clk_uart_baud1";
clocks = <&clocks CLK_UART3>, <&clocks CLK_UART3>,
<&clocks SCLK_UART3>;
status = "disabled";
};
sdhci0: sdhci@eb000000 {
compatible = "samsung,s3c6410-sdhci";
reg = <0xeb000000 0x100000>;
interrupt-parent = <&vic1>;
interrupts = <26>;
clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
clocks = <&clocks CLK_HSMMC0>, <&clocks CLK_HSMMC0>,
<&clocks SCLK_MMC0>;
status = "disabled";
};
sdhci1: sdhci@eb100000 {
compatible = "samsung,s3c6410-sdhci";
reg = <0xeb100000 0x100000>;
interrupt-parent = <&vic1>;
interrupts = <27>;
clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
clocks = <&clocks CLK_HSMMC1>, <&clocks CLK_HSMMC1>,
<&clocks SCLK_MMC1>;
status = "disabled";
};
sdhci2: sdhci@eb200000 {
compatible = "samsung,s3c6410-sdhci";
reg = <0xeb200000 0x100000>;
interrupt-parent = <&vic1>;
interrupts = <28>;
clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2";
clocks = <&clocks CLK_HSMMC2>, <&clocks CLK_HSMMC2>,
<&clocks SCLK_MMC2>;
status = "disabled";
};
sdhci3: sdhci@eb300000 {
compatible = "samsung,s3c6410-sdhci";
reg = <0xeb300000 0x100000>;
interrupt-parent = <&vic3>;
interrupts = <2>;
clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.3";
clocks = <&clocks CLK_HSMMC3>, <&clocks CLK_HSMMC3>,
<&clocks SCLK_MMC3>;
status = "disabled";
};
hsotg: hsotg@ec000000 {
compatible = "samsung,s3c6400-hsotg";
reg = <0xec000000 0x20000>;
interrupt-parent = <&vic1>;
interrupts = <24>;
clocks = <&clocks CLK_USB_OTG>;
clock-names = "otg";
phy-names = "usb2-phy";
phys = <&usbphy 0>;
status = "disabled";
};
usbphy: usbphy@ec100000 {
compatible = "samsung,s5pv210-usb2-phy";
reg = <0xec100000 0x100>;
samsung,pmureg-phandle = <&pmu_syscon>;
clocks = <&clocks CLK_USB_OTG>, <&xusbxti>;
clock-names = "phy", "ref";
#phy-cells = <1>;
status = "disabled";
};
ehci: ehci@ec200000 {
compatible = "samsung,exynos4210-ehci";
reg = <0xec200000 0x100>;
interrupts = <23>;
interrupt-parent = <&vic1>;
clocks = <&clocks CLK_USB_HOST>;
clock-names = "usbhost";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
port@0 {
reg = <0>;
phys = <&usbphy 1>;
};
};
ohci: ohci@ec300000 {
compatible = "samsung,exynos4210-ohci";
reg = <0xec300000 0x100>;
interrupts = <23>;
clocks = <&clocks CLK_USB_HOST>;
clock-names = "usbhost";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
port@0 {
reg = <0>;
phys = <&usbphy 1>;
};
};
mfc: codec@f1700000 {
compatible = "samsung,mfc-v5";
reg = <0xf1700000 0x10000>;
interrupt-parent = <&vic2>;
interrupts = <14>;
clocks = <&clocks DOUT_MFC>, <&clocks CLK_MFC>;
clock-names = "sclk_mfc", "mfc";
};
vic0: interrupt-controller@f2000000 {
compatible = "arm,pl192-vic";
interrupt-controller;
reg = <0xf2000000 0x1000>;
#interrupt-cells = <1>;
};
vic1: interrupt-controller@f2100000 {
compatible = "arm,pl192-vic";
interrupt-controller;
reg = <0xf2100000 0x1000>;
#interrupt-cells = <1>;
};
vic2: interrupt-controller@f2200000 {
compatible = "arm,pl192-vic";
interrupt-controller;
reg = <0xf2200000 0x1000>;
#interrupt-cells = <1>;
};
vic3: interrupt-controller@f2300000 {
compatible = "arm,pl192-vic";
interrupt-controller;
reg = <0xf2300000 0x1000>;
#interrupt-cells = <1>;
};
fimd: fimd@f8000000 {
compatible = "samsung,exynos4210-fimd";
interrupt-parent = <&vic2>;
reg = <0xf8000000 0x20000>;
interrupt-names = "fifo", "vsync", "lcd_sys";
interrupts = <0>, <1>, <2>;
clocks = <&clocks SCLK_FIMD>, <&clocks CLK_FIMD>;
clock-names = "sclk_fimd", "fimd";
status = "disabled";
};
g2d: g2d@fa000000 {
compatible = "samsung,s5pv210-g2d";
reg = <0xfa000000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <9>;
clocks = <&clocks DOUT_G2D>, <&clocks CLK_G2D>;
clock-names = "sclk_fimg2d", "fimg2d";
};
mdma1: mdma@fa200000 {
compatible = "arm,pl330", "arm,primecell";
reg = <0xfa200000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <18>;
clocks = <&clocks CLK_MDMA>;
clock-names = "apb_pclk";
#dma-cells = <1>;
#dma-channels = <8>;
#dma-requests = <1>;
};
i2c1: i2c@fab00000 {
compatible = "samsung,s3c2440-i2c";
reg = <0xfab00000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <13>;
clocks = <&clocks CLK_I2C1>;
clock-names = "i2c";
pinctrl-names = "default";
pinctrl-0 = <&i2c1_bus>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
camera: camera {
compatible = "samsung,fimc", "simple-bus";
pinctrl-names = "default";
pinctrl-0 = <>;
clocks = <&clocks SCLK_CAM0>, <&clocks SCLK_CAM1>;
clock-names = "sclk_cam0", "sclk_cam1";
#address-cells = <1>;
#size-cells = <1>;
ranges;
clock_cam: clock-controller {
#clock-cells = <1>;
};
csis0: csis@fa600000 {
compatible = "samsung,s5pv210-csis";
reg = <0xfa600000 0x4000>;
interrupt-parent = <&vic2>;
interrupts = <29>;
clocks = <&clocks CLK_CSIS>,
<&clocks SCLK_CSIS>;
clock-names = "clk_csis",
"sclk_csis";
bus-width = <4>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
fimc0: fimc@fb200000 {
compatible = "samsung,s5pv210-fimc";
reg = <0xfb200000 0x1000>;
interrupts = <5>;
interrupt-parent = <&vic2>;
clocks = <&clocks CLK_FIMC0>,
<&clocks SCLK_FIMC0>;
clock-names = "fimc",
"sclk_fimc";
samsung,pix-limits = <4224 8192 1920 4224>;
samsung,mainscaler-ext;
samsung,cam-if;
};
fimc1: fimc@fb300000 {
compatible = "samsung,s5pv210-fimc";
reg = <0xfb300000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <6>;
clocks = <&clocks CLK_FIMC1>,
<&clocks SCLK_FIMC1>;
clock-names = "fimc",
"sclk_fimc";
samsung,pix-limits = <4224 8192 1920 4224>;
samsung,mainscaler-ext;
samsung,cam-if;
};
fimc2: fimc@fb400000 {
compatible = "samsung,s5pv210-fimc";
reg = <0xfb400000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <7>;
clocks = <&clocks CLK_FIMC2>,
<&clocks SCLK_FIMC2>;
clock-names = "fimc",
"sclk_fimc";
samsung,pix-limits = <4224 8192 1920 4224>;
samsung,mainscaler-ext;
samsung,lcd-wb;
};
};
};
};
#include "s5pv210-pinctrl.dtsi"
/* linux/arch/arm/mach-s5pv210/include/mach/debug-macro.S /*
* * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* Copyright (c) 2010 Samsung Electronics Co., Ltd. * http://www.samsung.com
* http://www.samsung.com/
*
* Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License version 2 as
...@@ -12,8 +9,9 @@ ...@@ -12,8 +9,9 @@
/* pull in the relevant register and map files. */ /* pull in the relevant register and map files. */
#include <linux/serial_s3c.h> #define S3C_ADDR_BASE 0xF6000000
#include <mach/map.h> #define S3C_VA_UART S3C_ADDR_BASE + 0x01000000
#define S5PV210_PA_UART 0xe2900000
/* note, for the boot process to work we have to keep the UART /* note, for the boot process to work we have to keep the UART
* virtual address aligned to an 1MiB boundary for the L1 * virtual address aligned to an 1MiB boundary for the L1
...@@ -22,8 +20,8 @@ ...@@ -22,8 +20,8 @@
*/ */
.macro addruart, rp, rv, tmp .macro addruart, rp, rv, tmp
ldr \rp, = S3C_PA_UART ldr \rp, =S5PV210_PA_UART
ldr \rv, = S3C_VA_UART ldr \rv, =S3C_VA_UART
#if CONFIG_DEBUG_S3C_UART != 0 #if CONFIG_DEBUG_S3C_UART != 0
add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART) add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART)
add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART) add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART)
...@@ -33,9 +31,4 @@ ...@@ -33,9 +31,4 @@
#define fifo_full fifo_full_s5pv210 #define fifo_full fifo_full_s5pv210
#define fifo_level fifo_level_s5pv210 #define fifo_level fifo_level_s5pv210
/* include the reset of the code which will do the work, we're only
* compiling for a single cpu processor type so the default of s3c2440
* will be fine with us.
*/
#include <debug/samsung.S> #include <debug/samsung.S>
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <asm/suspend.h> #include <asm/suspend.h>
#include <plat/pm-common.h> #include <plat/pm-common.h>
#include <plat/pll.h>
#include <plat/regs-srom.h> #include <plat/regs-srom.h>
#include <mach/map.h> #include <mach/map.h>
......
...@@ -49,9 +49,7 @@ ...@@ -49,9 +49,7 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/clock.h>
#include <plat/cpu-freq.h> #include <plat/cpu-freq.h>
#include <plat/pll.h>
#include <plat/pwm-core.h> #include <plat/pwm-core.h>
#include <plat/watchdog-reset.h> #include <plat/watchdog-reset.h>
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/cpu-freq-core.h> #include <plat/cpu-freq-core.h>
#include <plat/clock.h>
#include <mach/s3c2412.h> #include <mach/s3c2412.h>
......
...@@ -60,7 +60,6 @@ ...@@ -60,7 +60,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/pll.h>
#include <plat/pm.h> #include <plat/pm.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
...@@ -73,6 +72,10 @@ ...@@ -73,6 +72,10 @@
#define H1940_LATCH_BIT(x) (1 << ((x) + 16 - S3C_GPIO_END)) #define H1940_LATCH_BIT(x) (1 << ((x) + 16 - S3C_GPIO_END))
#define S3C24XX_PLL_MDIV_SHIFT (12)
#define S3C24XX_PLL_PDIV_SHIFT (4)
#define S3C24XX_PLL_SDIV_SHIFT (0)
static struct map_desc h1940_iodesc[] __initdata = { static struct map_desc h1940_iodesc[] __initdata = {
[0] = { [0] = {
.virtual = (unsigned long)H1940_LATCH, .virtual = (unsigned long)H1940_LATCH,
......
...@@ -48,7 +48,6 @@ ...@@ -48,7 +48,6 @@
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/pm.h> #include <plat/pm.h>
......
...@@ -43,7 +43,6 @@ ...@@ -43,7 +43,6 @@
#include <mach/gpio-samsung.h> #include <mach/gpio-samsung.h>
#include <mach/fb.h> #include <mach/fb.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h>
......
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
#include <mach/fb.h> #include <mach/fb.h>
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
......
...@@ -41,8 +41,6 @@ ...@@ -41,8 +41,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/clock.h>
#include <plat/pll.h>
#include <plat/pm.h> #include <plat/pm.h>
#include <plat/watchdog-reset.h> #include <plat/watchdog-reset.h>
...@@ -83,10 +81,6 @@ void __init s3c2410_map_io(void) ...@@ -83,10 +81,6 @@ void __init s3c2410_map_io(void)
iotable_init(s3c2410_iodesc, ARRAY_SIZE(s3c2410_iodesc)); iotable_init(s3c2410_iodesc, ARRAY_SIZE(s3c2410_iodesc));
} }
void __init_or_cpufreq s3c2410_setup_clocks(void)
{
}
struct bus_type s3c2410_subsys = { struct bus_type s3c2410_subsys = {
.name = "s3c2410-core", .name = "s3c2410-core",
.dev_name = "s3c2410-core", .dev_name = "s3c2410-core",
......
...@@ -37,12 +37,10 @@ ...@@ -37,12 +37,10 @@
#include <mach/regs-clock.h> #include <mach/regs-clock.h>
#include <mach/regs-gpio.h> #include <mach/regs-gpio.h>
#include <plat/clock.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/cpu-freq.h> #include <plat/cpu-freq.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/nand-core.h> #include <plat/nand-core.h>
#include <plat/pll.h>
#include <plat/pm.h> #include <plat/pm.h>
#include <plat/regs-spi.h> #include <plat/regs-spi.h>
...@@ -171,10 +169,6 @@ void __init s3c2412_map_io(void) ...@@ -171,10 +169,6 @@ void __init s3c2412_map_io(void)
iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc)); iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc));
} }
void __init_or_cpufreq s3c2412_setup_clocks(void)
{
}
/* need to register the subsystem before we actually register the device, and /* need to register the subsystem before we actually register the device, and
* we also need to ensure that it has been initialised before any of the * we also need to ensure that it has been initialised before any of the
* drivers even try to use it (even if not on an s3c2412 based system) * drivers even try to use it (even if not on an s3c2412 based system)
......
...@@ -43,7 +43,6 @@ ...@@ -43,7 +43,6 @@
#include <mach/regs-clock.h> #include <mach/regs-clock.h>
#include <plat/clock.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/pm.h> #include <plat/pm.h>
......
...@@ -38,11 +38,9 @@ ...@@ -38,11 +38,9 @@
#include <mach/regs-clock.h> #include <mach/regs-clock.h>
#include <mach/regs-gpio.h> #include <mach/regs-gpio.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/pm.h> #include <plat/pm.h>
#include <plat/pll.h>
#include <plat/nand-core.h> #include <plat/nand-core.h>
#include <plat/watchdog-reset.h> #include <plat/watchdog-reset.h>
...@@ -78,10 +76,6 @@ void __init s3c244x_map_io(void) ...@@ -78,10 +76,6 @@ void __init s3c244x_map_io(void)
s3c2410_device_dclk.name = "s3c2440-dclk"; s3c2410_device_dclk.name = "s3c2440-dclk";
} }
void __init_or_cpufreq s3c244x_setup_clocks(void)
{
}
/* Since the S3C2442 and S3C2440 share items, put both subsystems here */ /* Since the S3C2442 and S3C2440 share items, put both subsystems here */
struct bus_type s3c2440_subsys = { struct bus_type s3c2440_subsys = {
......
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <plat/fb.h> #include <plat/fb.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <mach/regs-gpio.h> #include <mach/regs-gpio.h>
......
...@@ -58,7 +58,6 @@ ...@@ -58,7 +58,6 @@
#include <linux/platform_data/spi-s3c64xx.h> #include <linux/platform_data/spi-s3c64xx.h>
#include <plat/keypad.h> #include <plat/keypad.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/adc.h> #include <plat/adc.h>
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include <plat/fb.h> #include <plat/fb.h>
#include <linux/platform_data/mtd-nand-s3c2410.h> #include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
#include <plat/fb.h> #include <plat/fb.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/samsung-time.h> #include <plat/samsung-time.h>
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <mach/regs-gpio.h> #include <mach/regs-gpio.h>
#include <mach/gpio-samsung.h> #include <mach/gpio-samsung.h>
#include <plat/clock.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/map.h> #include <mach/map.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <linux/platform_data/i2c-s3c2410.h> #include <linux/platform_data/i2c-s3c2410.h>
......
...@@ -63,7 +63,6 @@ ...@@ -63,7 +63,6 @@
#include <plat/fb.h> #include <plat/fb.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
#include <plat/clock.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/adc.h> #include <plat/adc.h>
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/clock.h>
#include <plat/sdhci.h> #include <plat/sdhci.h>
#include <plat/iic-core.h> #include <plat/iic-core.h>
#include <plat/onenand-core.h> #include <plat/onenand-core.h>
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/clock.h>
#include <plat/sdhci.h> #include <plat/sdhci.h>
#include <plat/ata-core.h> #include <plat/ata-core.h>
#include <plat/adc-core.h> #include <plat/adc-core.h>
......
...@@ -7,193 +7,28 @@ ...@@ -7,193 +7,28 @@
# Configuration options for the S5PV210/S5PC110 # Configuration options for the S5PV210/S5PC110
config ARCH_S5PV210
bool "Samsung S5PV210/S5PC110" if ARCH_MULTI_V7
select ARCH_HAS_HOLES_MEMORYMODEL
select ARCH_REQUIRE_GPIOLIB
select ARM_VIC
select CLKSRC_SAMSUNG_PWM
select COMMON_CLK_SAMSUNG
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_S3C_RTC if RTC_CLASS
select PINCTRL
select PINCTRL_EXYNOS
help
Samsung S5PV210/S5PC110 series based systems
if ARCH_S5PV210 if ARCH_S5PV210
config CPU_S5PV210 config CPU_S5PV210
bool def_bool y
select ARM_AMBA select ARM_AMBA
select PL330_DMA if DMADEVICES select PL330_DMA if DMADEVICES
select S5P_EXT_INT
select S5P_PM if PM
select S5P_SLEEP if PM
help help
Enable S5PV210 CPU support Enable S5PV210 CPU support
config S5PV210_SETUP_I2C1
bool
help
Common setup code for i2c bus 1.
config S5PV210_SETUP_I2C2
bool
help
Common setup code for i2c bus 2.
config S5PV210_SETUP_IDE
bool
help
Common setup code for S5PV210 IDE GPIO configurations
config S5PV210_SETUP_FB_24BPP
bool
help
Common setup code for S5PV210 with an 24bpp RGB display helper.
config S5PV210_SETUP_KEYPAD
bool
help
Common setup code for keypad.
config S5PV210_SETUP_SDHCI
bool
select S5PV210_SETUP_SDHCI_GPIO
help
Internal helper functions for S5PV210 based SDHCI systems
config S5PV210_SETUP_SDHCI_GPIO
bool
help
Common setup code for SDHCI gpio.
config S5PV210_SETUP_FIMC
bool
help
Common setup code for the camera interfaces.
config S5PV210_SETUP_SPI
bool
help
Common setup code for SPI GPIO configurations.
config S5PV210_SETUP_USB_PHY
bool
help
Common setup code for USB PHY controller
menu "S5PC110 Machines"
config MACH_AQUILA
bool "Aquila"
select CPU_S5PV210
select S3C_DEV_FB
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S5PV210_SETUP_FB_24BPP
select S5PV210_SETUP_SDHCI
select S5PV210_SETUP_USB_PHY
select S5P_DEV_FIMC0
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
select S5P_DEV_ONENAND
help
Machine support for the Samsung Aquila target based on S5PC110 SoC
config MACH_GONI
bool "GONI"
select CPU_S5PV210
select S3C_DEV_FB
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select S3C_DEV_USB_HSOTG
select S5PV210_SETUP_FB_24BPP
select S5PV210_SETUP_FIMC
select S5PV210_SETUP_I2C1
select S5PV210_SETUP_I2C2
select S5PV210_SETUP_KEYPAD
select S5PV210_SETUP_SDHCI
select S5PV210_SETUP_USB_PHY
select S5P_DEV_FIMC0
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
select S5P_DEV_MFC
select S5P_DEV_ONENAND
select S5P_DEV_TV
select S5P_GPIO_INT
select SAMSUNG_DEV_KEYPAD
help
Machine support for Samsung GONI board
S5PC110(MCP) is one of package option of S5PV210
config MACH_SMDKC110
bool "SMDKC110"
select CPU_S5PV210
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select S3C_DEV_RTC
select S3C_DEV_WDT
select S5PV210_SETUP_I2C1
select S5PV210_SETUP_I2C2
select S5PV210_SETUP_IDE
select S5P_DEV_FIMC0
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
select S5P_DEV_MFC
select SAMSUNG_DEV_IDE
help
Machine support for Samsung SMDKC110
S5PC110(MCP) is one of package option of S5PV210
endmenu
menu "S5PV210 Machines"
config MACH_SMDKV210
bool "SMDKV210"
select CPU_S5PV210
select S3C_DEV_FB
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select S3C_DEV_RTC
select S3C_DEV_USB_HSOTG
select S3C_DEV_WDT
select S5PV210_SETUP_FB_24BPP
select S5PV210_SETUP_I2C1
select S5PV210_SETUP_I2C2
select S5PV210_SETUP_IDE
select S5PV210_SETUP_KEYPAD
select S5PV210_SETUP_SDHCI
select S5PV210_SETUP_USB_PHY
select S5P_DEV_FIMC0
select S5P_DEV_FIMC1
select S5P_DEV_FIMC2
select S5P_DEV_JPEG
select S5P_DEV_MFC
select SAMSUNG_DEV_ADC
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_IDE
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM
select SAMSUNG_DEV_TS
help
Machine support for Samsung SMDKV210
config MACH_TORBRECK
bool "Torbreck"
select ARCH_SPARSEMEM_ENABLE
select CPU_S5PV210
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
select S3C_DEV_I2C1
select S3C_DEV_I2C2
select S3C_DEV_RTC
select S3C_DEV_WDT
select S5PV210_SETUP_I2C1
select S5PV210_SETUP_I2C2
select S5PV210_SETUP_SDHCI
select SAMSUNG_DEV_IDE
help
Machine support for aESOP Torbreck
endmenu
endif endif
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
# #
# Licensed under GPLv2 # Licensed under GPLv2
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
obj-y := obj-y :=
obj-m := obj-m :=
obj-n := obj-n :=
...@@ -12,31 +14,8 @@ obj- := ...@@ -12,31 +14,8 @@ obj- :=
# Core # Core
obj-y += common.o clock.o obj-$(CONFIG_PM_SLEEP) += pm.o sleep.o
obj-$(CONFIG_PM) += pm.o
obj-y += dma.o
# machine support # machine support
obj-$(CONFIG_MACH_AQUILA) += mach-aquila.o obj-y += s5pv210.o
obj-$(CONFIG_MACH_GONI) += mach-goni.o
obj-$(CONFIG_MACH_SMDKC110) += mach-smdkc110.o
obj-$(CONFIG_MACH_SMDKV210) += mach-smdkv210.o
obj-$(CONFIG_MACH_TORBRECK) += mach-torbreck.o
# device support
obj-y += dev-audio.o
obj-y += setup-i2c0.o
obj-$(CONFIG_S5PV210_SETUP_FB_24BPP) += setup-fb-24bpp.o
obj-$(CONFIG_S5PV210_SETUP_FIMC) += setup-fimc.o
obj-$(CONFIG_S5PV210_SETUP_I2C1) += setup-i2c1.o
obj-$(CONFIG_S5PV210_SETUP_I2C2) += setup-i2c2.o
obj-$(CONFIG_S5PV210_SETUP_IDE) += setup-ide.o
obj-$(CONFIG_S5PV210_SETUP_KEYPAD) += setup-keypad.o
obj-$(CONFIG_S5PV210_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
obj-$(CONFIG_S5PV210_SETUP_SPI) += setup-spi.o
obj-$(CONFIG_S5PV210_SETUP_USB_PHY) += setup-usb-phy.o
zreladdr-y += 0x20008000
params_phys-y := 0x20000100
此差异已折叠。
此差异已折叠。
...@@ -12,19 +12,12 @@ ...@@ -12,19 +12,12 @@
#ifndef __ARCH_ARM_MACH_S5PV210_COMMON_H #ifndef __ARCH_ARM_MACH_S5PV210_COMMON_H
#define __ARCH_ARM_MACH_S5PV210_COMMON_H #define __ARCH_ARM_MACH_S5PV210_COMMON_H
#include <linux/reboot.h> #ifdef CONFIG_PM_SLEEP
u32 exynos_get_eint_wake_mask(void);
void s5pv210_init_io(struct map_desc *mach_desc, int size); void s5pv210_cpu_resume(void);
void s5pv210_init_irq(void); void s5pv210_pm_init(void);
#else
void s5pv210_register_clocks(void); static inline void s5pv210_pm_init(void) {}
void s5pv210_setup_clocks(void); #endif
void s5pv210_restart(enum reboot_mode mode, const char *cmd);
extern int s5pv210_init(void);
extern void s5pv210_map_io(void);
extern void s5pv210_init_clocks(int xtal);
extern void s5pv210_init_uarts(struct s3c2410_uartcfg *cfg, int no);
#endif /* __ARCH_ARM_MACH_S5PV210_COMMON_H */ #endif /* __ARCH_ARM_MACH_S5PV210_COMMON_H */
此差异已折叠。
/* linux/arch/arm/mach-s5pv210/dma.c
*
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Copyright (C) 2010 Samsung Electronics Co. Ltd.
* Jaswinder Singh <jassi.brar@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <linux/dma-mapping.h>
#include <linux/amba/bus.h>
#include <linux/amba/pl330.h>
#include <asm/irq.h>
#include <plat/devs.h>
#include <plat/irqs.h>
#include <mach/map.h>
#include <mach/irqs.h>
#include <mach/dma.h>
static u8 pdma0_peri[] = {
DMACH_UART0_RX,
DMACH_UART0_TX,
DMACH_UART1_RX,
DMACH_UART1_TX,
DMACH_UART2_RX,
DMACH_UART2_TX,
DMACH_UART3_RX,
DMACH_UART3_TX,
DMACH_MAX,
DMACH_I2S0_RX,
DMACH_I2S0_TX,
DMACH_I2S0S_TX,
DMACH_I2S1_RX,
DMACH_I2S1_TX,
DMACH_MAX,
DMACH_MAX,
DMACH_SPI0_RX,
DMACH_SPI0_TX,
DMACH_SPI1_RX,
DMACH_SPI1_TX,
DMACH_MAX,
DMACH_MAX,
DMACH_AC97_MICIN,
DMACH_AC97_PCMIN,
DMACH_AC97_PCMOUT,
DMACH_MAX,
DMACH_PWM,
DMACH_SPDIF,
};
static struct dma_pl330_platdata s5pv210_pdma0_pdata = {
.nr_valid_peri = ARRAY_SIZE(pdma0_peri),
.peri_id = pdma0_peri,
};
static AMBA_AHB_DEVICE(s5pv210_pdma0, "dma-pl330.0", 0x00041330,
S5PV210_PA_PDMA0, {IRQ_PDMA0}, &s5pv210_pdma0_pdata);
static u8 pdma1_peri[] = {
DMACH_UART0_RX,
DMACH_UART0_TX,
DMACH_UART1_RX,
DMACH_UART1_TX,
DMACH_UART2_RX,
DMACH_UART2_TX,
DMACH_UART3_RX,
DMACH_UART3_TX,
DMACH_MAX,
DMACH_I2S0_RX,
DMACH_I2S0_TX,
DMACH_I2S0S_TX,
DMACH_I2S1_RX,
DMACH_I2S1_TX,
DMACH_I2S2_RX,
DMACH_I2S2_TX,
DMACH_SPI0_RX,
DMACH_SPI0_TX,
DMACH_SPI1_RX,
DMACH_SPI1_TX,
DMACH_MAX,
DMACH_MAX,
DMACH_PCM0_RX,
DMACH_PCM0_TX,
DMACH_PCM1_RX,
DMACH_PCM1_TX,
DMACH_MSM_REQ0,
DMACH_MSM_REQ1,
DMACH_MSM_REQ2,
DMACH_MSM_REQ3,
DMACH_PCM2_RX,
DMACH_PCM2_TX,
};
static struct dma_pl330_platdata s5pv210_pdma1_pdata = {
.nr_valid_peri = ARRAY_SIZE(pdma1_peri),
.peri_id = pdma1_peri,
};
static AMBA_AHB_DEVICE(s5pv210_pdma1, "dma-pl330.1", 0x00041330,
S5PV210_PA_PDMA1, {IRQ_PDMA1}, &s5pv210_pdma1_pdata);
static int __init s5pv210_dma_init(void)
{
dma_cap_set(DMA_SLAVE, s5pv210_pdma0_pdata.cap_mask);
dma_cap_set(DMA_CYCLIC, s5pv210_pdma0_pdata.cap_mask);
amba_device_register(&s5pv210_pdma0_device, &iomem_resource);
dma_cap_set(DMA_SLAVE, s5pv210_pdma1_pdata.cap_mask);
dma_cap_set(DMA_CYCLIC, s5pv210_pdma1_pdata.cap_mask);
amba_device_register(&s5pv210_pdma1_device, &iomem_resource);
return 0;
}
arch_initcall(s5pv210_dma_init);
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/clock.h>
static struct cpu_table *cpu; static struct cpu_table *cpu;
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册