Skip to contentSkip to conversation

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

PATCH Superseded YoungJun Cho 5 participants 7 messages Oct 2, 2014 – Nov 19, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

From: Youngjun Cho <[email protected]>

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

---
 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
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +592 -0

592 lines not on this page · raw message

Signature · 1 line
1.8.0
#1 lore raw

PATCH 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

+ 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

Quoted 654 lines · YoungJun Cho

From: Youngjun Cho <[email protected]>

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

---
 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
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +592 -1
new file mode 100644
index 0000000..9e94294
@@ -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 at 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 at 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 at 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 at 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 at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

#2 lore raw

PATCH 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

In reply to YoungJun Cho
Quoted 75 lines · YoungJun Cho

From: Youngjun Cho <[email protected]>

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

---
 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
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +21 -0
new file mode 100644
index 0000000..9e94294
@@ -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";

arch/arm/boot/dts/exynos3250-monk.dts line 31

Quoted 10 lines
arch/arm/boot/dts/exynos3250-monk.dts new file +10 -0
+
+       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 at 40000000 {
	reg = <0x40000000 0x1ff00000>;
};

arch/arm/boot/dts/exynos3250-monk.dts line 41

Quoted 10 lines
arch/arm/boot/dts/exynos3250-monk.dts new file +10 -0
+       };
+
+       chosen {
+               bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";
+       };
+
+       firmware at 0205F000 {
+               compatible = "samsung,secure-firmware";
+               reg = <0x0205F000 0x1000>;
+       } ;

Nit: useless space before the ';'.

Quoted 19 lines
arch/arm/boot/dts/exynos3250-monk.dts new file +19 -0
+
+       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>;

arch/arm/boot/dts/exynos3250-monk.dts line 70

Quoted 10 lines
arch/arm/boot/dts/exynos3250-monk.dts new file +10 -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.

#3 lore raw

PATCH v2 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

From: Youngjun Cho <[email protected]>

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 [PATCHv2 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board

Changes from v1:
- The 'memory' entries coalesce into one entry
- Removes useless space
- Puts voltage-regulator-0 under the root node

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

---
 arch/arm/boot/dts/Makefile            |   3 +-
 arch/arm/boot/dts/exynos3250-monk.dts | 583 ++++++++++++++++++++++++++++++++++
 2 files changed, 585 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +583 -0

583 lines not on this page · raw message

Signature · 1 line
1.9.0
#4 lore raw

PATCH v2 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

Dear Kukjin,

Could you please review or pick this patchset?

Best Regards,
Chanwoo Choi

Quoted 641 lines · YoungJun Cho

From: Youngjun Cho <[email protected]>

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 [PATCHv2 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board

Changes from v1:
- The 'memory' entries coalesce into one entry
- Removes useless space
- Puts voltage-regulator-0 under the root node

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

---
 arch/arm/boot/dts/Makefile            |   3 +-
 arch/arm/boot/dts/exynos3250-monk.dts | 583 ++++++++++++++++++++++++++++++++++
 2 files changed, 585 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +583 -0
new file mode 100644
index 0000000..615672f
@@ -0,0 +1,583 @@
+/*
+ * 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 0x1ff00000>;
+	};
+
+	chosen {
+		bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";
+	};
+
+	firmware at 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;
+		};
+	};
+
+	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 at 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 at 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 at 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);
+	};
+};
#5 lore raw

PATCH v2 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

Quoted 2 lines · Chanwoo Choi

Dear Kukjin,

Hi,

Quoted 87 lines

Could you please review or pick this patchset?

Best Regards,
Chanwoo Choi

Quoted 81 lines · YoungJun Cho

From: Youngjun Cho <[email protected]>

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 [PATCHv2 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board

Changes from v1:
- The 'memory' entries coalesce into one entry
- Removes useless space
- Puts voltage-regulator-0 under the root node

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

---
 arch/arm/boot/dts/Makefile            |   3 +-
 arch/arm/boot/dts/exynos3250-monk.dts | 583 ++++++++++++++++++++++++++++++++++
 2 files changed, 585 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +24 -0
new file mode 100644
index 0000000..615672f
@@ -0,0 +1,583 @@
+/*
+ * 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;
Quoted 8 lines

arch/arm/boot/dts/exynos3250-monk.dts line 32

Quoted 8 lines
arch/arm/boot/dts/exynos3250-monk.dts new file +8 -0
+	};
+
+	memory {
+		reg =  <0x40000000 0x1ff00000>;
+	};
+
+	chosen {
+		bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";

Actually, the bootargs can be supplied from bootloader and can be removed from here and it's a recent requirement from mailinglist. But I've already applied similar one in rinato.dts. So please cleanup them together later...? :)

[snip]

Will apply, thanks.

- Kukjin

#6 lore raw

PATCH v2 1/1 ARM: dts: add board dts file for Exynos3250-based Monk board

Quoted 106 lines · Kukjin Kim
Quoted 2 lines · Chanwoo Choi

Dear Kukjin,

Hi,

Quoted 87 lines

Could you please review or pick this patchset?

Best Regards,
Chanwoo Choi

Quoted 81 lines · YoungJun Cho

From: Youngjun Cho <[email protected]>

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 [PATCHv2 0/2] ARM: dts: Add new board dts file for Exynos3250-based Rinato board

Changes from v1:
- The 'memory' entries coalesce into one entry
- Removes useless space
- Puts voltage-regulator-0 under the root node

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

---
 arch/arm/boot/dts/Makefile            |   3 +-
 arch/arm/boot/dts/exynos3250-monk.dts | 583 ++++++++++++++++++++++++++++++++++
 2 files changed, 585 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/Makefile +2 -1
index 5728918..0c8ae64 100644
@@ -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 \
arch/arm/boot/dts/exynos3250-monk.dts new file +24 -0
new file mode 100644
index 0000000..615672f
@@ -0,0 +1,583 @@
+/*
+ * 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;
Quoted 8 lines

arch/arm/boot/dts/exynos3250-monk.dts line 32

Quoted 8 lines
arch/arm/boot/dts/exynos3250-monk.dts new file +8 -0
+	};
+
+	memory {
+		reg =  <0x40000000 0x1ff00000>;
+	};
+
+	chosen {
+		bootargs = "console=ttySAC1,115200N8 root=/dev/mmcblk0p15 rootwait earlyprintk panic=5";

Actually, the bootargs can be supplied from bootloader and can be removed from here and it's a recent requirement from mailinglist. But I've already applied similar one in rinato.dts. So please cleanup them together later...? :)

Quoted 5 lines

[snip]

Will apply, thanks.

- Kukjin

I think, you need adding board file description in the Doc?

WARNING: DT compatible string "samsung,monk" appears un-documented -- check ./Documentation/devicetree/bindings/
#79: FILE: arch/arm/boot/dts/exynos3250-monk.dts:21:
+ compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";

Thanks,
Kukjin