diff mbox

ARM: dts: add board dts file for Exynos3250-based Monk board

Message ID 1412211025-3459-1-git-send-email-yj44.cho@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

YoungJun Cho Oct. 2, 2014, 12:50 a.m. UTC
From: Youngjun Cho <yj44.cho@samsung.com>

This patch adds new board dts file to support Samsung Monk board which is
based on Exynos3250 SoC and has different H/W configuration from Rinato.

This patch is based on linux-samsung.git for-next branch and depends on
[PATCH 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board[1]

This dts file support following features:
- eMMC
- Main PMIC (Samsung S2MPS14)
- Interface PMIC (Maxim MAX77836, MUIC, fuel-gauge, charger)
- RTC of Exynos3250
- ADC of Exynos3250 with NTC thermistor
- I2S of Exynos3250
- TMU of Exynos3250
- Secure firmware for Exynos3250 secondary cpu boot
- Serial ports of Exynos3250
- gpio-key for power key

[1] http://www.spinics.net/lists/arm-kernel/msg366849.html

Signed-off-by: Youngjun Cho <yj44.cho@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/boot/dts/Makefile            |   3 +-
 arch/arm/boot/dts/exynos3250-monk.dts | 592 ++++++++++++++++++++++++++++++++++
 2 files changed, 594 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts

Comments

Kyungmin Park Oct. 2, 2014, 6:57 a.m. UTC | #1
+ Adding ARM maintainers.
I know it's too late. just to know we trying to push product board
support at mainline.

Thank you,
Kyungmin Park

On Thu, Oct 2, 2014 at 9:50 AM, YoungJun Cho <yj44.cho@samsung.com> wrote:
> From: Youngjun Cho <yj44.cho@samsung.com>
>
> This patch adds new board dts file to support Samsung Monk board which is
> based on Exynos3250 SoC and has different H/W configuration from Rinato.
>
> This patch is based on linux-samsung.git for-next branch and depends on
> [PATCH 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board[1]
>
> This dts file support following features:
> - eMMC
> - Main PMIC (Samsung S2MPS14)
> - Interface PMIC (Maxim MAX77836, MUIC, fuel-gauge, charger)
> - RTC of Exynos3250
> - ADC of Exynos3250 with NTC thermistor
> - I2S of Exynos3250
> - TMU of Exynos3250
> - Secure firmware for Exynos3250 secondary cpu boot
> - Serial ports of Exynos3250
> - gpio-key for power key
>
> [1] http://www.spinics.net/lists/arm-kernel/msg366849.html
>
> Signed-off-by: Youngjun Cho <yj44.cho@samsung.com>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Signed-off-by: Inki Dae <inki.dae@samsung.com>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  arch/arm/boot/dts/Makefile            |   3 +-
>  arch/arm/boot/dts/exynos3250-monk.dts | 592 ++++++++++++++++++++++++++++++++++
>  2 files changed, 594 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 5728918..0c8ae64 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -64,7 +64,8 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
>  dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
>         da850-evm.dtb
>  dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
> -dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-rinato.dtb \
> +dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
> +       exynos3250-rinato.dtb \
>         exynos4210-origen.dtb \
>         exynos4210-smdkv310.dtb \
>         exynos4210-trats.dtb \
> diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
> new file mode 100644
> index 0000000..9e94294
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos3250-monk.dts
> @@ -0,0 +1,592 @@
> +/*
> + * Samsung's Exynos3250 based Monk board device tree source
> + *
> + * Copyright (c) 2014 Samsung Electronics Co., Ltd.
> + *             http://www.samsung.com
> + *
> + * Device tree source file for Samsung's Monk board which is based on
> + * Samsung Exynos3250 SoC.
> + *
> + * 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 "exynos3250.dtsi"
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +       model = "Samsung Monk board";
> +       compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";
> +
> +       aliases {
> +               i2c7 = &i2c_max77836;
> +       };
> +
> +       memory {
> +               reg =  <0x40000000 0x08000000
> +                       0x48000000 0x08000000
> +                       0x50000000 0x08000000
> +                       0x58000000 0x07F00000>;
> +       };
> +
> +       chosen {
> +               bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";
> +       };
> +
> +       firmware@0205F000 {
> +               compatible = "samsung,secure-firmware";
> +               reg = <0x0205F000 0x1000>;
> +       } ;
> +
> +       gpio_keys {
> +               compatible = "gpio-keys";
> +
> +               power_key {
> +                       interrupt-parent = <&gpx2>;
> +                       interrupts = <7 0>;
> +                       gpios = <&gpx2 7 1>;
> +                       linux,code = <KEY_POWER>;
> +                       label = "power key";
> +                       debounce-interval = <10>;
> +                       gpio-key,wakeup;
> +               };
> +       };
> +
> +       regulators {
> +               compatible = "simple-bus";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               vemmc_reg: voltage-regulator-0 {
> +                       compatible = "regulator-fixed";
> +                       regulator-name = "V_EMMC_2.8V-fixed";
> +                       regulator-min-microvolt = <2800000>;
> +                       regulator-max-microvolt = <2800000>;
> +                       gpio = <&gpk0 2 0>;
> +                       enable-active-high;
> +               };
> +       };
> +
> +       i2c_max77836: i2c-gpio-0 {
> +               compatible = "i2c-gpio";
> +               gpios = <&gpd0 2 0>, <&gpd0 3 0>;
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               max77836: subpmic@25 {
> +                       compatible = "maxim,max77836";
> +                       interrupt-parent = <&gpx1>;
> +                       interrupts = <5 0>;
> +                       reg = <0x25>;
> +                       wakeup;
> +
> +                       muic: max77836-muic {
> +                               compatible = "maxim,max77836-muic";
> +                       };
> +
> +                       regulators {
> +                               compatible = "maxim,max77836-regulator";
> +                               safeout_reg: SAFEOUT {
> +                                       regulator-name = "SAFEOUT";
> +                               };
> +
> +                               charger_reg: CHARGER {
> +                                       regulator-name = "CHARGER";
> +                                       regulator-min-microamp = <45000>;
> +                                       regulator-max-microamp = <475000>;
> +                                       regulator-boot-on;
> +                               };
> +
> +                               motor_reg: LDO1 {
> +                                       regulator-name = "MOT_2.7V";
> +                                       regulator-min-microvolt = <1100000>;
> +                                       regulator-max-microvolt = <2700000>;
> +                               };
> +
> +                               LDO2 {
> +                                       regulator-name = "UNUSED_LDO2";
> +                                       regulator-min-microvolt = <800000>;
> +                                       regulator-max-microvolt = <3950000>;
> +                               };
> +                       };
> +
> +                       charger {
> +                               compatible = "maxim,max77836-charger";
> +
> +                               maxim,constant-uvolt = <4350000>;
> +                               maxim,fast-charge-uamp = <225000>;
> +                               maxim,eoc-uamp = <7500>;
> +                               maxim,ovp-uvolt = <6500000>;
> +                       };
> +               };
> +       };
> +};
> +
> +&adc {
> +       vdd-supply = <&ldo3_reg>;
> +       status = "okay";
> +       assigned-clocks = <&cmu CLK_SCLK_TSADC>;
> +       assigned-clock-rates = <6000000>;
> +
> +       thermistor-ap {
> +               compatible = "ntc,ncp15wb473";
> +               pullup-uv = <1800000>;
> +               pullup-ohm = <100000>;
> +               pulldown-ohm = <100000>;
> +               io-channels = <&adc 0>;
> +       };
> +
> +       thermistor-battery {
> +               compatible = "ntc,ncp15wb473";
> +               pullup-uv = <1800000>;
> +               pullup-ohm = <100000>;
> +               pulldown-ohm = <100000>;
> +               io-channels = <&adc 1>;
> +       };
> +};
> +
> +&i2c_0 {
> +       #address-cells = <1>;
> +       #size-cells = <0>;
> +       samsung,i2c-sda-delay = <100>;
> +       samsung,i2c-slave-addr = <0x10>;
> +       samsung,i2c-max-bus-freq = <100000>;
> +       status = "okay";
> +
> +       s2mps14_pmic@66 {
> +               compatible = "samsung,s2mps14-pmic";
> +               interrupt-parent = <&gpx0>;
> +               interrupts = <7 0>;
> +               reg = <0x66>;
> +               wakeup;
> +
> +               s2mps14_osc: clocks {
> +                       compatible = "samsung,s2mps14-clk";
> +                       #clock-cells = <1>;
> +                       clock-output-names = "s2mps14_ap", "unused",
> +                               "s2mps14_bt";
> +               };
> +
> +               regulators {
> +                       ldo1_reg: LDO1 {
> +                               regulator-name = "VAP_ALIVE_1.0V";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo2_reg: LDO2 {
> +                               regulator-name = "VAP_M1_1.2V";
> +                               regulator-min-microvolt = <1200000>;
> +                               regulator-max-microvolt = <1200000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo3_reg: LDO3 {
> +                               regulator-name = "VCC_AP_1.8V";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo4_reg: LDO4 {
> +                               regulator-name = "VAP_AVDD_PLL1";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo5_reg: LDO5 {
> +                               regulator-name = "VAP_PLL_ISO_1.0V";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo6_reg: LDO6 {
> +                               regulator-name = "VAP_MIPI_1.0V";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                       };
> +
> +                       ldo7_reg: LDO7 {
> +                               regulator-name = "VAP_AVDD_1.8V";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo8_reg: LDO8 {
> +                               regulator-name = "VAP_USB_3.0V";
> +                               regulator-min-microvolt = <3000000>;
> +                               regulator-max-microvolt = <3000000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo9_reg: LDO9 {
> +                               regulator-name = "V_LPDDR_1.2V";
> +                               regulator-min-microvolt = <1200000>;
> +                               regulator-max-microvolt = <1200000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo10_reg: LDO10 {
> +                               regulator-name = "UNUSED_LDO10";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                       };
> +
> +                       ldo11_reg: LDO11 {
> +                               regulator-name = "V_EMMC_1.8V";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                               samsung,ext-control-gpios = <&gpk0 2 0>;
> +                       };
> +
> +                       ldo12_reg: LDO12 {
> +                               regulator-name = "V_EMMC_2.8V";
> +                               regulator-min-microvolt = <2800000>;
> +                               regulator-max-microvolt = <2800000>;
> +                               samsung,ext-control-gpios = <&gpk0 2 0>;
> +                       };
> +
> +                       ldo13_reg: LDO13 {
> +                               regulator-name = "VSENSOR_2.85V";
> +                               regulator-min-microvolt = <2850000>;
> +                               regulator-max-microvolt = <2850000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo14_reg: LDO14 {
> +                               regulator-name = "UNUSED_LDO14";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       ldo15_reg: LDO15 {
> +                               regulator-name = "TSP_AVDD_3.3V";
> +                               regulator-min-microvolt = <3300000>;
> +                               regulator-max-microvolt = <3300000>;
> +                       };
> +
> +                       ldo16_reg: LDO16 {
> +                               regulator-name = "LCD_VDD_3.3V";
> +                               regulator-min-microvolt = <3300000>;
> +                               regulator-max-microvolt = <3300000>;
> +                       };
> +
> +                       ldo17_reg: LDO17 {
> +                               regulator-name = "UNUSED_LDO17";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       ldo18_reg: LDO18 {
> +                               regulator-name = "UNUSED_LDO18";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       ldo19_reg: LDO19 {
> +                               regulator-name = "TSP_VDD_1.8V";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       ldo20_reg: LDO20 {
> +                               regulator-name = "LCD_VDD_1.8V";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       ldo21_reg: LDO21 {
> +                               regulator-name = "UNUSED_LDO21";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                       };
> +
> +                       ldo22_reg: LDO22 {
> +                               regulator-name = "UNUSED_LDO22";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                       };
> +
> +                       ldo23_reg: LDO23 {
> +                               regulator-name = "UNUSED_LDO23";
> +                               regulator-min-microvolt = <1000000>;
> +                               regulator-max-microvolt = <1000000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       ldo24_reg: LDO24 {
> +                               regulator-name = "UNUSED_LDO24";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       ldo25_reg: LDO25 {
> +                               regulator-name = "UNUSED_LDO25";
> +                               regulator-min-microvolt = <1800000>;
> +                               regulator-max-microvolt = <1800000>;
> +                       };
> +
> +                       buck1_reg: BUCK1 {
> +                               regulator-name = "VAP_MIF_1.0V";
> +                               regulator-min-microvolt = <800000>;
> +                               regulator-max-microvolt = <900000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       buck2_reg: BUCK2 {
> +                               regulator-name = "VAP_ARM_1.0V";
> +                               regulator-min-microvolt = <850000>;
> +                               regulator-max-microvolt = <1150000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       buck3_reg: BUCK3 {
> +                               regulator-name = "VAP_INT3D_1.0V";
> +                               regulator-min-microvolt = <850000>;
> +                               regulator-max-microvolt = <1000000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       buck4_reg: BUCK4 {
> +                               regulator-name = "VCC_SUB_1.95V";
> +                               regulator-min-microvolt = <1950000>;
> +                               regulator-max-microvolt = <1950000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       buck5_reg: BUCK5 {
> +                               regulator-name = "VCC_SUB_1.35V";
> +                               regulator-min-microvolt = <1350000>;
> +                               regulator-max-microvolt = <1350000>;
> +                               regulator-always-on;
> +                       };
> +               };
> +       };
> +};
> +
> +&i2c_1 {
> +       #address-cells = <1>;
> +       #size-cells = <0>;
> +       samsung,i2c-sda-delay = <100>;
> +       samsung,i2c-slave-addr = <0x10>;
> +       samsung,i2c-max-bus-freq = <400000>;
> +       status = "okay";
> +
> +       fuelgauge@36 {
> +               compatible = "maxim,max77836-battery";
> +               interrupt-parent = <&gpx1>;
> +               interrupts = <2 8>;
> +               reg = <0x36>;
> +       };
> +};
> +
> +&i2s2 {
> +       status = "okay";
> +};
> +
> +&mshc_0 {
> +       #address-cells = <1>;
> +       #size-cells = <0>;
> +       num-slots = <1>;
> +       broken-cd;
> +       non-removable;
> +       cap-mmc-highspeed;
> +       desc-num = <4>;
> +       mmc-hs200-1_8v;
> +       card-detect-delay = <200>;
> +       vmmc-supply = <&vemmc_reg>;
> +       clock-frequency = <100000000>;
> +       clock-freq-min-max = <400000 100000000>;
> +       samsung,dw-mshc-ciu-div = <1>;
> +       samsung,dw-mshc-sdr-timing = <0 1>;
> +       samsung,dw-mshc-ddr-timing = <1 2>;
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
> +       bus-width = <8>;
> +       status = "okay";
> +};
> +
> +&serial_0 {
> +       assigned-clocks = <&cmu CLK_SCLK_UART0>;
> +       assigned-clock-rates = <100000000>;
> +       status = "okay";
> +};
> +
> +&serial_1 {
> +       status = "okay";
> +};
> +
> +&tmu {
> +       vtmu-supply = <&ldo7_reg>;
> +       status = "okay";
> +};
> +
> +&rtc {
> +       clocks = <&cmu CLK_RTC>, <&s2mps14_osc 0>;
> +       clock-names = "rtc", "rtc_src";
> +       status = "okay";
> +};
> +
> +&xusbxti {
> +       clock-frequency = <24000000>;
> +};
> +
> +&pinctrl_0 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&sleep0>;
> +
> +       sleep0: sleep-state {
> +               PIN_SLP(gpa0-0, INPUT, DOWN);
> +               PIN_SLP(gpa0-1, INPUT, DOWN);
> +               PIN_SLP(gpa0-2, INPUT, DOWN);
> +               PIN_SLP(gpa0-3, INPUT, DOWN);
> +               PIN_SLP(gpa0-4, INPUT, DOWN);
> +               PIN_SLP(gpa0-5, INPUT, DOWN);
> +               PIN_SLP(gpa0-6, INPUT, DOWN);
> +               PIN_SLP(gpa0-7, INPUT, DOWN);
> +
> +               PIN_SLP(gpa1-0, INPUT, DOWN);
> +               PIN_SLP(gpa1-1, INPUT, DOWN);
> +               PIN_SLP(gpa1-2, INPUT, DOWN);
> +               PIN_SLP(gpa1-3, INPUT, DOWN);
> +               PIN_SLP(gpa1-4, INPUT, DOWN);
> +               PIN_SLP(gpa1-5, INPUT, DOWN);
> +
> +               PIN_SLP(gpb-0, PREV, NONE);
> +               PIN_SLP(gpb-1, PREV, NONE);
> +               PIN_SLP(gpb-2, PREV, NONE);
> +               PIN_SLP(gpb-3, PREV, NONE);
> +               PIN_SLP(gpb-4, INPUT, DOWN);
> +               PIN_SLP(gpb-5, INPUT, DOWN);
> +               PIN_SLP(gpb-6, INPUT, DOWN);
> +               PIN_SLP(gpb-7, INPUT, DOWN);
> +
> +               PIN_SLP(gpc0-0, INPUT, DOWN);
> +               PIN_SLP(gpc0-1, INPUT, DOWN);
> +               PIN_SLP(gpc0-2, INPUT, DOWN);
> +               PIN_SLP(gpc0-3, INPUT, DOWN);
> +               PIN_SLP(gpc0-4, INPUT, DOWN);
> +
> +               PIN_SLP(gpc1-0, INPUT, DOWN);
> +               PIN_SLP(gpc1-1, INPUT, DOWN);
> +               PIN_SLP(gpc1-2, INPUT, DOWN);
> +               PIN_SLP(gpc1-3, INPUT, DOWN);
> +               PIN_SLP(gpc1-4, INPUT, DOWN);
> +
> +               PIN_SLP(gpd0-0, INPUT, DOWN);
> +               PIN_SLP(gpd0-1, INPUT, DOWN);
> +               PIN_SLP(gpd0-2, INPUT, NONE);
> +               PIN_SLP(gpd0-3, INPUT, NONE);
> +
> +               PIN_SLP(gpd1-0, INPUT, NONE);
> +               PIN_SLP(gpd1-1, INPUT, NONE);
> +               PIN_SLP(gpd1-2, INPUT, NONE);
> +               PIN_SLP(gpd1-3, INPUT, NONE);
> +       };
> +};
> +
> +&pinctrl_1 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&sleep1>;
> +
> +       sleep1: sleep-state {
> +               PIN_SLP(gpe0-0, PREV, NONE);
> +               PIN_SLP(gpe0-1, PREV, NONE);
> +               PIN_SLP(gpe0-2, INPUT, DOWN);
> +               PIN_SLP(gpe0-3, INPUT, DOWN);
> +               PIN_SLP(gpe0-4, PREV, NONE);
> +               PIN_SLP(gpe0-5, INPUT, DOWN);
> +               PIN_SLP(gpe0-6, INPUT, DOWN);
> +               PIN_SLP(gpe0-7, INPUT, DOWN);
> +
> +               PIN_SLP(gpe1-0, INPUT, DOWN);
> +               PIN_SLP(gpe1-1, PREV, NONE);
> +               PIN_SLP(gpe1-2, INPUT, DOWN);
> +               PIN_SLP(gpe1-3, INPUT, DOWN);
> +               PIN_SLP(gpe1-4, INPUT, DOWN);
> +               PIN_SLP(gpe1-5, INPUT, DOWN);
> +               PIN_SLP(gpe1-6, INPUT, DOWN);
> +               PIN_SLP(gpe1-7, INPUT, NONE);
> +
> +               PIN_SLP(gpe2-0, INPUT, NONE);
> +               PIN_SLP(gpe2-1, INPUT, NONE);
> +               PIN_SLP(gpe2-2, INPUT, NONE);
> +
> +               PIN_SLP(gpk0-0, INPUT, DOWN);
> +               PIN_SLP(gpk0-1, INPUT, DOWN);
> +               PIN_SLP(gpk0-2, OUT0, NONE);
> +               PIN_SLP(gpk0-3, INPUT, DOWN);
> +               PIN_SLP(gpk0-4, INPUT, DOWN);
> +               PIN_SLP(gpk0-5, INPUT, DOWN);
> +               PIN_SLP(gpk0-6, INPUT, DOWN);
> +               PIN_SLP(gpk0-7, INPUT, DOWN);
> +
> +               PIN_SLP(gpk1-0, PREV, NONE);
> +               PIN_SLP(gpk1-1, PREV, NONE);
> +               PIN_SLP(gpk1-2, INPUT, DOWN);
> +               PIN_SLP(gpk1-3, PREV, NONE);
> +               PIN_SLP(gpk1-4, PREV, NONE);
> +               PIN_SLP(gpk1-5, PREV, NONE);
> +               PIN_SLP(gpk1-6, PREV, NONE);
> +
> +               PIN_SLP(gpk2-0, INPUT, DOWN);
> +               PIN_SLP(gpk2-1, INPUT, DOWN);
> +               PIN_SLP(gpk2-2, INPUT, DOWN);
> +               PIN_SLP(gpk2-3, INPUT, DOWN);
> +               PIN_SLP(gpk2-4, INPUT, DOWN);
> +               PIN_SLP(gpk2-5, INPUT, DOWN);
> +               PIN_SLP(gpk2-6, INPUT, DOWN);
> +
> +               PIN_SLP(gpl0-0, INPUT, DOWN);
> +               PIN_SLP(gpl0-1, INPUT, DOWN);
> +               PIN_SLP(gpl0-2, INPUT, DOWN);
> +               PIN_SLP(gpl0-3, INPUT, DOWN);
> +
> +               PIN_SLP(gpm0-0, INPUT, DOWN);
> +               PIN_SLP(gpm0-1, INPUT, DOWN);
> +               PIN_SLP(gpm0-2, INPUT, DOWN);
> +               PIN_SLP(gpm0-3, INPUT, DOWN);
> +               PIN_SLP(gpm0-4, INPUT, DOWN);
> +               PIN_SLP(gpm0-5, INPUT, DOWN);
> +               PIN_SLP(gpm0-6, INPUT, DOWN);
> +               PIN_SLP(gpm0-7, INPUT, DOWN);
> +
> +               PIN_SLP(gpm1-0, INPUT, DOWN);
> +               PIN_SLP(gpm1-1, INPUT, DOWN);
> +               PIN_SLP(gpm1-2, INPUT, DOWN);
> +               PIN_SLP(gpm1-3, INPUT, DOWN);
> +               PIN_SLP(gpm1-4, INPUT, DOWN);
> +               PIN_SLP(gpm1-5, INPUT, DOWN);
> +               PIN_SLP(gpm1-6, INPUT, DOWN);
> +
> +               PIN_SLP(gpm2-0, INPUT, DOWN);
> +               PIN_SLP(gpm2-1, INPUT, DOWN);
> +               PIN_SLP(gpm2-2, INPUT, DOWN);
> +               PIN_SLP(gpm2-3, INPUT, DOWN);
> +               PIN_SLP(gpm2-4, INPUT, DOWN);
> +
> +               PIN_SLP(gpm3-0, INPUT, DOWN);
> +               PIN_SLP(gpm3-1, INPUT, DOWN);
> +               PIN_SLP(gpm3-2, INPUT, DOWN);
> +               PIN_SLP(gpm3-3, INPUT, DOWN);
> +               PIN_SLP(gpm3-4, INPUT, DOWN);
> +               PIN_SLP(gpm3-5, INPUT, DOWN);
> +               PIN_SLP(gpm3-6, INPUT, DOWN);
> +               PIN_SLP(gpm3-7, INPUT, DOWN);
> +
> +               PIN_SLP(gpm4-0, INPUT, DOWN);
> +               PIN_SLP(gpm4-1, INPUT, DOWN);
> +               PIN_SLP(gpm4-2, INPUT, DOWN);
> +               PIN_SLP(gpm4-3, INPUT, DOWN);
> +               PIN_SLP(gpm4-4, INPUT, DOWN);
> +               PIN_SLP(gpm4-5, INPUT, DOWN);
> +               PIN_SLP(gpm4-6, INPUT, DOWN);
> +               PIN_SLP(gpm4-7, INPUT, DOWN);
> +       };
> +};
> --
> 1.8.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Mark Rutland Oct. 2, 2014, 11:22 a.m. UTC | #2
On Thu, Oct 02, 2014 at 01:50:25AM +0100, YoungJun Cho wrote:
> From: Youngjun Cho <yj44.cho@samsung.com>
> 
> This patch adds new board dts file to support Samsung Monk board which is
> based on Exynos3250 SoC and has different H/W configuration from Rinato.
> 
> This patch is based on linux-samsung.git for-next branch and depends on
> [PATCH 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board[1]
> 
> This dts file support following features:
> - eMMC
> - Main PMIC (Samsung S2MPS14)
> - Interface PMIC (Maxim MAX77836, MUIC, fuel-gauge, charger)
> - RTC of Exynos3250
> - ADC of Exynos3250 with NTC thermistor
> - I2S of Exynos3250
> - TMU of Exynos3250
> - Secure firmware for Exynos3250 secondary cpu boot
> - Serial ports of Exynos3250
> - gpio-key for power key
> 
> [1] http://www.spinics.net/lists/arm-kernel/msg366849.html
> 
> Signed-off-by: Youngjun Cho <yj44.cho@samsung.com>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Signed-off-by: Inki Dae <inki.dae@samsung.com>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
>  arch/arm/boot/dts/Makefile            |   3 +-
>  arch/arm/boot/dts/exynos3250-monk.dts | 592 ++++++++++++++++++++++++++++++++++
>  2 files changed, 594 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 5728918..0c8ae64 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -64,7 +64,8 @@ dtb-$(CONFIG_ARCH_BRCMSTB) += \
>  dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
>         da850-evm.dtb
>  dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
> -dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-rinato.dtb \
> +dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
> +       exynos3250-rinato.dtb \
>         exynos4210-origen.dtb \
>         exynos4210-smdkv310.dtb \
>         exynos4210-trats.dtb \
> diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
> new file mode 100644
> index 0000000..9e94294
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos3250-monk.dts
> @@ -0,0 +1,592 @@
> +/*
> + * Samsung's Exynos3250 based Monk board device tree source
> + *
> + * Copyright (c) 2014 Samsung Electronics Co., Ltd.
> + *             http://www.samsung.com
> + *
> + * Device tree source file for Samsung's Monk board which is based on
> + * Samsung Exynos3250 SoC.
> + *
> + * 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 "exynos3250.dtsi"
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +       model = "Samsung Monk board";
> +       compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";
> +
> +       aliases {
> +               i2c7 = &i2c_max77836;
> +       };
> +
> +       memory {
> +               reg =  <0x40000000 0x08000000
> +                       0x48000000 0x08000000
> +                       0x50000000 0x08000000
> +                       0x58000000 0x07F00000>;

Nit: please bracket list entries individually.

That said, it looks like this could be coalesced into:

memory@40000000 {
	reg = <0x40000000 0x1ff00000>;
};

> +       };
> +
> +       chosen {
> +               bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";
> +       };
> +
> +       firmware@0205F000 {
> +               compatible = "samsung,secure-firmware";
> +               reg = <0x0205F000 0x1000>;
> +       } ;

Nit: useless space before the ';'.

> +
> +       gpio_keys {
> +               compatible = "gpio-keys";
> +
> +               power_key {
> +                       interrupt-parent = <&gpx2>;
> +                       interrupts = <7 0>;
> +                       gpios = <&gpx2 7 1>;
> +                       linux,code = <KEY_POWER>;
> +                       label = "power key";
> +                       debounce-interval = <10>;
> +                       gpio-key,wakeup;
> +               };
> +       };
> +
> +       regulators {
> +               compatible = "simple-bus";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +
> +               vemmc_reg: voltage-regulator-0 {
> +                       compatible = "regulator-fixed";
> +                       regulator-name = "V_EMMC_2.8V-fixed";
> +                       regulator-min-microvolt = <2800000>;
> +                       regulator-max-microvolt = <2800000>;
> +                       gpio = <&gpk0 2 0>;
> +                       enable-active-high;
> +               };
> +       };

Why not put this directly under the root node? There's no reason to
group regulators simply because they're regulators, and there's only one
anyhow.

Mark.
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5728918..0c8ae64 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -64,7 +64,8 @@  dtb-$(CONFIG_ARCH_BRCMSTB) += \
 dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \
 	da850-evm.dtb
 dtb-$(CONFIG_ARCH_EFM32) += efm32gg-dk3750.dtb
-dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-rinato.dtb \
+dtb-$(CONFIG_ARCH_EXYNOS) += exynos3250-monk.dtb \
+	exynos3250-rinato.dtb \
 	exynos4210-origen.dtb \
 	exynos4210-smdkv310.dtb \
 	exynos4210-trats.dtb \
diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
new file mode 100644
index 0000000..9e94294
--- /dev/null
+++ b/arch/arm/boot/dts/exynos3250-monk.dts
@@ -0,0 +1,592 @@ 
+/*
+ * Samsung's Exynos3250 based Monk board device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ *
+ * Device tree source file for Samsung's Monk board which is based on
+ * Samsung Exynos3250 SoC.
+ *
+ * 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 "exynos3250.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Samsung Monk board";
+	compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";
+
+	aliases {
+		i2c7 = &i2c_max77836;
+	};
+
+	memory {
+		reg =  <0x40000000 0x08000000
+			0x48000000 0x08000000
+			0x50000000 0x08000000
+			0x58000000 0x07F00000>;
+	};
+
+	chosen {
+		bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";
+	};
+
+	firmware@0205F000 {
+		compatible = "samsung,secure-firmware";
+		reg = <0x0205F000 0x1000>;
+	} ;
+
+	gpio_keys {
+		compatible = "gpio-keys";
+
+		power_key {
+			interrupt-parent = <&gpx2>;
+			interrupts = <7 0>;
+			gpios = <&gpx2 7 1>;
+			linux,code = <KEY_POWER>;
+			label = "power key";
+			debounce-interval = <10>;
+			gpio-key,wakeup;
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		vemmc_reg: voltage-regulator-0 {
+		        compatible = "regulator-fixed";
+			regulator-name = "V_EMMC_2.8V-fixed";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <2800000>;
+			gpio = <&gpk0 2 0>;
+			enable-active-high;
+		};
+	};
+
+	i2c_max77836: i2c-gpio-0 {
+		compatible = "i2c-gpio";
+		gpios = <&gpd0 2 0>, <&gpd0 3 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		max77836: subpmic@25 {
+			compatible = "maxim,max77836";
+			interrupt-parent = <&gpx1>;
+			interrupts = <5 0>;
+			reg = <0x25>;
+			wakeup;
+
+			muic: max77836-muic {
+				compatible = "maxim,max77836-muic";
+			};
+
+			regulators {
+				compatible = "maxim,max77836-regulator";
+				safeout_reg: SAFEOUT {
+					regulator-name = "SAFEOUT";
+				};
+
+				charger_reg: CHARGER {
+					regulator-name = "CHARGER";
+					regulator-min-microamp = <45000>;
+					regulator-max-microamp = <475000>;
+					regulator-boot-on;
+				};
+
+				motor_reg: LDO1 {
+					regulator-name = "MOT_2.7V";
+					regulator-min-microvolt = <1100000>;
+					regulator-max-microvolt = <2700000>;
+				};
+
+				LDO2 {
+					regulator-name = "UNUSED_LDO2";
+					regulator-min-microvolt = <800000>;
+					regulator-max-microvolt = <3950000>;
+				};
+			};
+
+			charger {
+				compatible = "maxim,max77836-charger";
+
+				maxim,constant-uvolt = <4350000>;
+				maxim,fast-charge-uamp = <225000>;
+				maxim,eoc-uamp = <7500>;
+				maxim,ovp-uvolt = <6500000>;
+			};
+		};
+	};
+};
+
+&adc {
+	vdd-supply = <&ldo3_reg>;
+	status = "okay";
+	assigned-clocks = <&cmu CLK_SCLK_TSADC>;
+	assigned-clock-rates = <6000000>;
+
+	thermistor-ap {
+		compatible = "ntc,ncp15wb473";
+		pullup-uv = <1800000>;
+		pullup-ohm = <100000>;
+		pulldown-ohm = <100000>;
+		io-channels = <&adc 0>;
+	};
+
+	thermistor-battery {
+		compatible = "ntc,ncp15wb473";
+		pullup-uv = <1800000>;
+		pullup-ohm = <100000>;
+		pulldown-ohm = <100000>;
+		io-channels = <&adc 1>;
+	};
+};
+
+&i2c_0 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <100000>;
+	status = "okay";
+
+	s2mps14_pmic@66 {
+		compatible = "samsung,s2mps14-pmic";
+		interrupt-parent = <&gpx0>;
+		interrupts = <7 0>;
+		reg = <0x66>;
+		wakeup;
+
+		s2mps14_osc: clocks {
+			compatible = "samsung,s2mps14-clk";
+			#clock-cells = <1>;
+			clock-output-names = "s2mps14_ap", "unused",
+				"s2mps14_bt";
+		};
+
+		regulators {
+			ldo1_reg: LDO1 {
+				regulator-name = "VAP_ALIVE_1.0V";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+			};
+
+			ldo2_reg: LDO2 {
+				regulator-name = "VAP_M1_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			ldo3_reg: LDO3 {
+				regulator-name = "VCC_AP_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			ldo4_reg: LDO4 {
+				regulator-name = "VAP_AVDD_PLL1";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			ldo5_reg: LDO5 {
+				regulator-name = "VAP_PLL_ISO_1.0V";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+			};
+
+			ldo6_reg: LDO6 {
+				regulator-name = "VAP_MIPI_1.0V";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+			};
+
+			ldo7_reg: LDO7 {
+				regulator-name = "VAP_AVDD_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			ldo8_reg: LDO8 {
+				regulator-name = "VAP_USB_3.0V";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-always-on;
+			};
+
+			ldo9_reg: LDO9 {
+				regulator-name = "V_LPDDR_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			ldo10_reg: LDO10 {
+				regulator-name = "UNUSED_LDO10";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+			};
+
+			ldo11_reg: LDO11 {
+				regulator-name = "V_EMMC_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				samsung,ext-control-gpios = <&gpk0 2 0>;
+			};
+
+			ldo12_reg: LDO12 {
+				regulator-name = "V_EMMC_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				samsung,ext-control-gpios = <&gpk0 2 0>;
+			};
+
+			ldo13_reg: LDO13 {
+				regulator-name = "VSENSOR_2.85V";
+				regulator-min-microvolt = <2850000>;
+				regulator-max-microvolt = <2850000>;
+				regulator-always-on;
+			};
+
+			ldo14_reg: LDO14 {
+				regulator-name = "UNUSED_LDO14";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			ldo15_reg: LDO15 {
+				regulator-name = "TSP_AVDD_3.3V";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			ldo16_reg: LDO16 {
+				regulator-name = "LCD_VDD_3.3V";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			ldo17_reg: LDO17 {
+				regulator-name = "UNUSED_LDO17";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			ldo18_reg: LDO18 {
+				regulator-name = "UNUSED_LDO18";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			ldo19_reg: LDO19 {
+				regulator-name = "TSP_VDD_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			ldo20_reg: LDO20 {
+				regulator-name = "LCD_VDD_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			ldo21_reg: LDO21 {
+				regulator-name = "UNUSED_LDO21";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+			};
+
+			ldo22_reg: LDO22 {
+				regulator-name = "UNUSED_LDO22";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+			};
+
+			ldo23_reg: LDO23 {
+				regulator-name = "UNUSED_LDO23";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+			};
+
+			ldo24_reg: LDO24 {
+				regulator-name = "UNUSED_LDO24";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			ldo25_reg: LDO25 {
+				regulator-name = "UNUSED_LDO25";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			buck1_reg: BUCK1 {
+				regulator-name = "VAP_MIF_1.0V";
+				regulator-min-microvolt = <800000>;
+				regulator-max-microvolt = <900000>;
+				regulator-always-on;
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "VAP_ARM_1.0V";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt = <1150000>;
+				regulator-always-on;
+			};
+
+			buck3_reg: BUCK3 {
+				regulator-name = "VAP_INT3D_1.0V";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+			};
+
+			buck4_reg: BUCK4 {
+				regulator-name = "VCC_SUB_1.95V";
+				regulator-min-microvolt = <1950000>;
+				regulator-max-microvolt = <1950000>;
+				regulator-always-on;
+			};
+
+			buck5_reg: BUCK5 {
+				regulator-name = "VCC_SUB_1.35V";
+				regulator-min-microvolt = <1350000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+			};
+		};
+	};
+};
+
+&i2c_1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <400000>;
+	status = "okay";
+
+	fuelgauge@36 {
+		compatible = "maxim,max77836-battery";
+		interrupt-parent = <&gpx1>;
+		interrupts = <2 8>;
+		reg = <0x36>;
+	};
+};
+
+&i2s2 {
+	status = "okay";
+};
+
+&mshc_0 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	num-slots = <1>;
+	broken-cd;
+	non-removable;
+	cap-mmc-highspeed;
+	desc-num = <4>;
+	mmc-hs200-1_8v;
+	card-detect-delay = <200>;
+	vmmc-supply = <&vemmc_reg>;
+	clock-frequency = <100000000>;
+	clock-freq-min-max = <400000 100000000>;
+	samsung,dw-mshc-ciu-div = <1>;
+	samsung,dw-mshc-sdr-timing = <0 1>;
+	samsung,dw-mshc-ddr-timing = <1 2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
+	bus-width = <8>;
+	status = "okay";
+};
+
+&serial_0 {
+	assigned-clocks = <&cmu CLK_SCLK_UART0>;
+	assigned-clock-rates = <100000000>;
+	status = "okay";
+};
+
+&serial_1 {
+	status = "okay";
+};
+
+&tmu {
+	vtmu-supply = <&ldo7_reg>;
+	status = "okay";
+};
+
+&rtc {
+	clocks = <&cmu CLK_RTC>, <&s2mps14_osc 0>;
+	clock-names = "rtc", "rtc_src";
+	status = "okay";
+};
+
+&xusbxti {
+	clock-frequency = <24000000>;
+};
+
+&pinctrl_0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&sleep0>;
+
+	sleep0: sleep-state {
+		PIN_SLP(gpa0-0, INPUT, DOWN);
+		PIN_SLP(gpa0-1, INPUT, DOWN);
+		PIN_SLP(gpa0-2, INPUT, DOWN);
+		PIN_SLP(gpa0-3, INPUT, DOWN);
+		PIN_SLP(gpa0-4, INPUT, DOWN);
+		PIN_SLP(gpa0-5, INPUT, DOWN);
+		PIN_SLP(gpa0-6, INPUT, DOWN);
+		PIN_SLP(gpa0-7, INPUT, DOWN);
+
+		PIN_SLP(gpa1-0, INPUT, DOWN);
+		PIN_SLP(gpa1-1, INPUT, DOWN);
+		PIN_SLP(gpa1-2, INPUT, DOWN);
+		PIN_SLP(gpa1-3, INPUT, DOWN);
+		PIN_SLP(gpa1-4, INPUT, DOWN);
+		PIN_SLP(gpa1-5, INPUT, DOWN);
+
+		PIN_SLP(gpb-0, PREV, NONE);
+		PIN_SLP(gpb-1, PREV, NONE);
+		PIN_SLP(gpb-2, PREV, NONE);
+		PIN_SLP(gpb-3, PREV, NONE);
+		PIN_SLP(gpb-4, INPUT, DOWN);
+		PIN_SLP(gpb-5, INPUT, DOWN);
+		PIN_SLP(gpb-6, INPUT, DOWN);
+		PIN_SLP(gpb-7, INPUT, DOWN);
+
+		PIN_SLP(gpc0-0, INPUT, DOWN);
+		PIN_SLP(gpc0-1, INPUT, DOWN);
+		PIN_SLP(gpc0-2, INPUT, DOWN);
+		PIN_SLP(gpc0-3, INPUT, DOWN);
+		PIN_SLP(gpc0-4, INPUT, DOWN);
+
+		PIN_SLP(gpc1-0, INPUT, DOWN);
+		PIN_SLP(gpc1-1, INPUT, DOWN);
+		PIN_SLP(gpc1-2, INPUT, DOWN);
+		PIN_SLP(gpc1-3, INPUT, DOWN);
+		PIN_SLP(gpc1-4, INPUT, DOWN);
+
+		PIN_SLP(gpd0-0, INPUT, DOWN);
+		PIN_SLP(gpd0-1, INPUT, DOWN);
+		PIN_SLP(gpd0-2, INPUT, NONE);
+		PIN_SLP(gpd0-3, INPUT, NONE);
+
+		PIN_SLP(gpd1-0, INPUT, NONE);
+		PIN_SLP(gpd1-1, INPUT, NONE);
+		PIN_SLP(gpd1-2, INPUT, NONE);
+		PIN_SLP(gpd1-3, INPUT, NONE);
+	};
+};
+
+&pinctrl_1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&sleep1>;
+
+	sleep1: sleep-state {
+		PIN_SLP(gpe0-0, PREV, NONE);
+		PIN_SLP(gpe0-1, PREV, NONE);
+		PIN_SLP(gpe0-2, INPUT, DOWN);
+		PIN_SLP(gpe0-3, INPUT, DOWN);
+		PIN_SLP(gpe0-4, PREV, NONE);
+		PIN_SLP(gpe0-5, INPUT, DOWN);
+		PIN_SLP(gpe0-6, INPUT, DOWN);
+		PIN_SLP(gpe0-7, INPUT, DOWN);
+
+		PIN_SLP(gpe1-0, INPUT, DOWN);
+		PIN_SLP(gpe1-1, PREV, NONE);
+		PIN_SLP(gpe1-2, INPUT, DOWN);
+		PIN_SLP(gpe1-3, INPUT, DOWN);
+		PIN_SLP(gpe1-4, INPUT, DOWN);
+		PIN_SLP(gpe1-5, INPUT, DOWN);
+		PIN_SLP(gpe1-6, INPUT, DOWN);
+		PIN_SLP(gpe1-7, INPUT, NONE);
+
+		PIN_SLP(gpe2-0, INPUT, NONE);
+		PIN_SLP(gpe2-1, INPUT, NONE);
+		PIN_SLP(gpe2-2, INPUT, NONE);
+
+		PIN_SLP(gpk0-0, INPUT, DOWN);
+		PIN_SLP(gpk0-1, INPUT, DOWN);
+		PIN_SLP(gpk0-2, OUT0, NONE);
+		PIN_SLP(gpk0-3, INPUT, DOWN);
+		PIN_SLP(gpk0-4, INPUT, DOWN);
+		PIN_SLP(gpk0-5, INPUT, DOWN);
+		PIN_SLP(gpk0-6, INPUT, DOWN);
+		PIN_SLP(gpk0-7, INPUT, DOWN);
+
+		PIN_SLP(gpk1-0, PREV, NONE);
+		PIN_SLP(gpk1-1, PREV, NONE);
+		PIN_SLP(gpk1-2, INPUT, DOWN);
+		PIN_SLP(gpk1-3, PREV, NONE);
+		PIN_SLP(gpk1-4, PREV, NONE);
+		PIN_SLP(gpk1-5, PREV, NONE);
+		PIN_SLP(gpk1-6, PREV, NONE);
+
+		PIN_SLP(gpk2-0, INPUT, DOWN);
+		PIN_SLP(gpk2-1, INPUT, DOWN);
+		PIN_SLP(gpk2-2, INPUT, DOWN);
+		PIN_SLP(gpk2-3, INPUT, DOWN);
+		PIN_SLP(gpk2-4, INPUT, DOWN);
+		PIN_SLP(gpk2-5, INPUT, DOWN);
+		PIN_SLP(gpk2-6, INPUT, DOWN);
+
+		PIN_SLP(gpl0-0, INPUT, DOWN);
+		PIN_SLP(gpl0-1, INPUT, DOWN);
+		PIN_SLP(gpl0-2, INPUT, DOWN);
+		PIN_SLP(gpl0-3, INPUT, DOWN);
+
+		PIN_SLP(gpm0-0, INPUT, DOWN);
+		PIN_SLP(gpm0-1, INPUT, DOWN);
+		PIN_SLP(gpm0-2, INPUT, DOWN);
+		PIN_SLP(gpm0-3, INPUT, DOWN);
+		PIN_SLP(gpm0-4, INPUT, DOWN);
+		PIN_SLP(gpm0-5, INPUT, DOWN);
+		PIN_SLP(gpm0-6, INPUT, DOWN);
+		PIN_SLP(gpm0-7, INPUT, DOWN);
+
+		PIN_SLP(gpm1-0, INPUT, DOWN);
+		PIN_SLP(gpm1-1, INPUT, DOWN);
+		PIN_SLP(gpm1-2, INPUT, DOWN);
+		PIN_SLP(gpm1-3, INPUT, DOWN);
+		PIN_SLP(gpm1-4, INPUT, DOWN);
+		PIN_SLP(gpm1-5, INPUT, DOWN);
+		PIN_SLP(gpm1-6, INPUT, DOWN);
+
+		PIN_SLP(gpm2-0, INPUT, DOWN);
+		PIN_SLP(gpm2-1, INPUT, DOWN);
+		PIN_SLP(gpm2-2, INPUT, DOWN);
+		PIN_SLP(gpm2-3, INPUT, DOWN);
+		PIN_SLP(gpm2-4, INPUT, DOWN);
+
+		PIN_SLP(gpm3-0, INPUT, DOWN);
+		PIN_SLP(gpm3-1, INPUT, DOWN);
+		PIN_SLP(gpm3-2, INPUT, DOWN);
+		PIN_SLP(gpm3-3, INPUT, DOWN);
+		PIN_SLP(gpm3-4, INPUT, DOWN);
+		PIN_SLP(gpm3-5, INPUT, DOWN);
+		PIN_SLP(gpm3-6, INPUT, DOWN);
+		PIN_SLP(gpm3-7, INPUT, DOWN);
+
+		PIN_SLP(gpm4-0, INPUT, DOWN);
+		PIN_SLP(gpm4-1, INPUT, DOWN);
+		PIN_SLP(gpm4-2, INPUT, DOWN);
+		PIN_SLP(gpm4-3, INPUT, DOWN);
+		PIN_SLP(gpm4-4, INPUT, DOWN);
+		PIN_SLP(gpm4-5, INPUT, DOWN);
+		PIN_SLP(gpm4-6, INPUT, DOWN);
+		PIN_SLP(gpm4-7, INPUT, DOWN);
+	};
+};