* [PATCH 0/3] Add Exynos4412-based midas boards support @ 2017-12-12 14:08 Simon Shields 2017-12-12 14:08 ` [PATCH 1/3] dt-bindings: samsung: document bindings for Midas family boards Simon Shields [not found] ` <20171212140815.28257-1-simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> 0 siblings, 2 replies; 6+ messages in thread From: Simon Shields @ 2017-12-12 14:08 UTC (permalink / raw) To: linux-samsung-soc Cc: Kukjin Kim, Krzysztof Kozlowski, devicetree, Simon Shields Hi, This patch series adds support for a new set of boards, codenamed "midas". These are the Galaxy S3 (m0/m3) and the Galaxy Note 2 (t0). These boards are closely related to trats2 - m0 is a trats2 but with a bootloader geared towards booting Android rather than a traditional Linux distribution - and because of this, the dts files are largely based off what is already in-place for trats2. Patch #1 adds documentation for the bindings used by the boards, patch #2 adds the device-tree files themselves, and patch #3 enables cpuidle support for the boards. Cheers, Simon Simon Shields (3): dt-bindings: samsung: document bindings for Midas family boards ARM: dts: add Samsung's exynos4412-based midas boards ARM: exynos: extend cpuidle support to midas boards .../bindings/arm/samsung/samsung-boards.txt | 4 + arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 144 +++ arch/arm/boot/dts/exynos4412-m0.dts | 14 + arch/arm/boot/dts/exynos4412-m3.dts | 19 + arch/arm/boot/dts/exynos4412-midas.dtsi | 1291 ++++++++++++++++++++ arch/arm/boot/dts/exynos4412-t0.dts | 51 + arch/arm/mach-exynos/exynos.c | 3 +- 7 files changed, 1525 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi create mode 100644 arch/arm/boot/dts/exynos4412-m0.dts create mode 100644 arch/arm/boot/dts/exynos4412-m3.dts create mode 100644 arch/arm/boot/dts/exynos4412-midas.dtsi create mode 100644 arch/arm/boot/dts/exynos4412-t0.dts -- 2.15.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] dt-bindings: samsung: document bindings for Midas family boards 2017-12-12 14:08 [PATCH 0/3] Add Exynos4412-based midas boards support Simon Shields @ 2017-12-12 14:08 ` Simon Shields [not found] ` <20171212140815.28257-1-simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> 1 sibling, 0 replies; 6+ messages in thread From: Simon Shields @ 2017-12-12 14:08 UTC (permalink / raw) To: linux-samsung-soc Cc: Kukjin Kim, Krzysztof Kozlowski, devicetree, Simon Shields Document GT-I9300, GT-I9305, GT-N7100, and GT-N7105 bindings, along with the shared "midas" binding. Signed-off-by: Simon Shields <simon@lineageos.org> --- Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt index e13459618581..e6765af5cf48 100644 --- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt @@ -9,7 +9,11 @@ Required root node properties: - "samsung,smdkv310" - for Exynos4210-based Samsung SMDKV310 eval board. - "samsung,trats" - for Exynos4210-based Tizen Reference board. - "samsung,universal_c210" - for Exynos4210-based Samsung board. + - "samsung,m0" - for Exynos4412-based Samsung GT-I9300 board. + - "samsung,m3" - for Exynos4412-based Samsung GT-I9305 board. + - "samsung,midas" - for Exynos4412-based Samsung Midas board. - "samsung,smdk4412", - for Exynos4412-based Samsung SMDK4412 eval board. + - "samsung,t0" - for Exynos4412-based Samsung GT-N7100/GT-N7105 board. - "samsung,trats2" - for Exynos4412-based Tizen Reference board. - "samsung,smdk5250" - for Exynos5250-based Samsung SMDK5250 eval board. - "samsung,xyref5260" - for Exynos5260-based Samsung board. -- 2.15.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
[parent not found: <20171212140815.28257-1-simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org>]
* [PATCH 2/3] ARM: dts: add Samsung's exynos4412-based midas boards [not found] ` <20171212140815.28257-1-simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> @ 2017-12-12 14:08 ` Simon Shields 2017-12-14 8:48 ` Krzysztof Kozlowski 2017-12-12 14:08 ` [PATCH 3/3] ARM: exynos: extend cpuidle support to " Simon Shields 1 sibling, 1 reply; 6+ messages in thread From: Simon Shields @ 2017-12-12 14:08 UTC (permalink / raw) To: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA Cc: Kukjin Kim, Krzysztof Kozlowski, devicetree-u79uwXL29TY76Z2rM5mHXA, Simon Shields "midas" is the codename for a family of smartphones released by Samsung Mobile. It includes the Galaxy S3 (GT-I9300/I9305) and the Galaxy Note 2 (GT-N7100/N7105). The boards largely have the same peripherals: the main differences are touchscreen, display panel and cellular modem. Signed-off-by: Simon Shields <simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> --- arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 144 +++ arch/arm/boot/dts/exynos4412-m0.dts | 14 + arch/arm/boot/dts/exynos4412-m3.dts | 19 + arch/arm/boot/dts/exynos4412-midas.dtsi | 1291 +++++++++++++++++++++++++++ arch/arm/boot/dts/exynos4412-t0.dts | 51 ++ 5 files changed, 1519 insertions(+) create mode 100644 arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi create mode 100644 arch/arm/boot/dts/exynos4412-m0.dts create mode 100644 arch/arm/boot/dts/exynos4412-m3.dts create mode 100644 arch/arm/boot/dts/exynos4412-midas.dtsi create mode 100644 arch/arm/boot/dts/exynos4412-t0.dts diff --git a/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi b/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi new file mode 100644 index 000000000000..536195adfe65 --- /dev/null +++ b/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi @@ -0,0 +1,144 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "exynos4412-midas.dtsi" + +/ { + regulators { + lcd_vdd3_reg: voltage-regulator-10 { + compatible = "regulator-fixed"; + regulator-name = "LCD_VDD_2.2V"; + regulator-min-microvolt = <2200000>; + regulator-max-microvolt = <2200000>; + enable-active-high; + gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>; + }; + + ps_als_reg: voltage-regulator-11 { + compatible = "regulator-fixed"; + regulator-name = "LED_A_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + enable-active-high; + gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>; + }; + }; + + i2c_ak8975: i2c-gpio-10 { + compatible = "i2c-gpio"; + gpios = <&gpy2 4 GPIO_ACTIVE_HIGH>, <&gpy2 5 GPIO_ACTIVE_HIGH>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + ak8975@c { + compatible = "asahi-kasei,ak8975"; + reg = <0x0c>; + gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>; + }; + }; + + i2c_cm36651: i2c-gpio-11 { + compatible = "i2c-gpio"; + gpios = <&gpf0 0 GPIO_ACTIVE_LOW>, <&gpf0 1 GPIO_ACTIVE_LOW>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + + cm36651@18 { + compatible = "capella,cm36651"; + reg = <0x18>; + interrupt-parent = <&gpx0>; + interrupts = <2 IRQ_EDGE_TYPE_FALLING>; + vled-supply = <&ps_als_reg>; + }; + }; +}; + +&buck9_reg { + maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>; +}; + +&cam_af_reg { + gpio = <&gpm0 4 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&cam_io_reg { + gpio = <&gpm0 2 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&dsi_0 { + vddcore-supply = <&ldo8_reg>; + vddio-supply = <&ldo10_reg>; + samsung,burst-clock-frequency = <500000000>; + samsung,esc-clock-frequency = <20000000>; + samsung,pll-clock-frequency = <24000000>; + status = "okay"; + + panel@0 { + compatible = "samsung,s6e8aa0"; + reg = <0>; + vdd3-supply = <&lcd_vdd3_reg>; + vci-supply = <&ldo25_reg>; + reset-gpios = <&gpf2 1 GPIO_ACTIVE_HIGH>; + power-on-delay= <50>; + reset-delay = <100>; + init-delay = <100>; + flip-horizontal; + flip-vertical; + panel-width-mm = <58>; + panel-height-mm = <103>; + + display-timings { + timing-0 { + clock-frequency = <57153600>; + hactive = <720>; + vactive = <1280>; + hfront-porch = <5>; + hback-porch = <5>; + hsync-len = <5>; + vfront-porch = <13>; + vback-porch = <1>; + vsync-len = <2>; + }; + }; + }; +}; + +&i2c_0 { + status = "okay"; +}; + +&i2c_3 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-slave-addr = <0x10>; + samsung,i2c-max-bus-freq = <400000>; + pinctrl-0 = <&i2c3_bus>; + pinctrl-names = "default"; + status = "okay"; + + mms114-touchscreen@48 { + compatible = "melfas,mms114"; + reg = <0x48>; + interrupt-parent = <&gpm2>; + interrupts = <3 IRQ_EDGE_TYPE_FALLING>; + x-size = <720>; + y-size = <1280>; + avdd-supply = <&ldo23_reg>; + vdd-supply = <&ldo24_reg>; + }; +}; + +&ldo17_reg { + regulator-name = "CAM_SENSOR_CORE_1.2V"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; +}; + +&ldo25_reg { + regulator-name = "LCD_VCC_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; +}; + diff --git a/arch/arm/boot/dts/exynos4412-m0.dts b/arch/arm/boot/dts/exynos4412-m0.dts new file mode 100644 index 000000000000..18aff81682a9 --- /dev/null +++ b/arch/arm/boot/dts/exynos4412-m0.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "exynos4412-galaxy-s3.dtsi" + +/ { + compatible = "samsung,m0", "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; + model = "Samsung M0 (GT-I9300) based on Exynos4412"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0x40000000>; + }; +}; + diff --git a/arch/arm/boot/dts/exynos4412-m3.dts b/arch/arm/boot/dts/exynos4412-m3.dts new file mode 100644 index 000000000000..e13ee49ad867 --- /dev/null +++ b/arch/arm/boot/dts/exynos4412-m3.dts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "exynos4412-galaxy-s3.dtsi" + +/ { + compatible = "samsung,m3", "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; + model = "Samsung M3 (GT-I9305) based on Exynos4412"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0x80000000>; + }; +}; + +&i2c0_bus { + // SCL and SDA pins are swapped + samsung,pins = "gpd1-1", "gpd1-0"; +}; + diff --git a/arch/arm/boot/dts/exynos4412-midas.dtsi b/arch/arm/boot/dts/exynos4412-midas.dtsi new file mode 100644 index 000000000000..65c1e2d14d26 --- /dev/null +++ b/arch/arm/boot/dts/exynos4412-midas.dtsi @@ -0,0 +1,1291 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "exynos4412.dtsi" +#include "exynos4412-ppmu-common.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/clock/maxim,max77686.h> +#include <dt-bindings/pinctrl/samsung.h> + +/ { + compatible = "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; + + aliases { + i2c9 = &i2c_max77693; + i2c10 = &i2c_max77693_fuel; + }; + + chosen { + stdout-path = &serial_2; + }; + + firmware@204f000 { + compatible = "samsung,secure-firmware"; + reg = <0x0204F000 0x1000>; + }; + + fixed-rate-clocks { + xxti { + compatible = "samsung,clock-xxti", "fixed-clock"; + clock-frequency = <0>; + }; + + xusbxti { + compatible = "samsung,clock-xusbxti", "fixed-clock"; + clock-frequency = <24000000>; + }; + }; + + regulators { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <0>; + + cam_io_reg: voltage-regulator-0 { + compatible = "regulator-fixed"; + regulator-name = "CAM_SENSOR_A"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + enable-active-high; + status = "disabled"; + }; + + cam_af_reg: voltage-regulator-1 { + compatible = "regulator-fixed"; + regulator-name = "CAM_AF"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + enable-active-high; + status = "disabled"; + }; + + vsil12: voltage-regulator-6 { + compatible = "regulator-fixed"; + regulator-name = "VSIL_1.2V"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&buck7_reg>; + }; + + vcc33mhl: voltage-regulator-7 { + compatible = "regulator-fixed"; + regulator-name = "VCC_3.3_MHL"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + vcc18mhl: voltage-regulator-8 { + compatible = "regulator-fixed"; + regulator-name = "VCC_1.8_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + }; + + gpio-keys { + compatible = "gpio-keys"; + + key-down { + gpios = <&gpx3 3 GPIO_ACTIVE_LOW>; + linux,code = <114>; + label = "volume down"; + debounce-interval = <10>; + }; + + key-up { + gpios = <&gpx2 2 GPIO_ACTIVE_LOW>; + linux,code = <115>; + label = "volume up"; + debounce-interval = <10>; + }; + + key-power { + gpios = <&gpx2 7 GPIO_ACTIVE_LOW>; + linux,code = <116>; + label = "power"; + debounce-interval = <10>; + wakeup-source; + }; + + key-home { + gpios = <&gpx0 1 GPIO_ACTIVE_LOW>; + linux,code = <172>; + label = "home"; + debounce-inteval = <10>; + wakeup-source; + }; + }; + + i2c_max77693: i2c-gpio-0 { + compatible = "i2c-gpio"; + gpios = <&gpm2 0 GPIO_ACTIVE_HIGH>, <&gpm2 1 GPIO_ACTIVE_HIGH>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + max77693@66 { + compatible = "maxim,max77693"; + interrupt-parent = <&gpx1>; + interrupts = <5 IRQ_EDGE_TYPE_FALLING>; + reg = <0x66>; + + regulators { + esafeout1_reg: ESAFEOUT1 { + regulator-name = "ESAFEOUT1"; + }; + esafeout2_reg: ESAFEOUT2 { + regulator-name = "ESAFEOUT2"; + }; + charger_reg: CHARGER { + regulator-name = "CHARGER"; + regulator-min-microamp = <60000>; + regulator-max-microamp = <2580000>; + }; + }; + + max77693_haptic { + compatible = "maxim,max77693-haptic"; + haptic-supply = <&ldo26_reg>; + pwms = <&pwm 0 38022 0>; + }; + + charger { + compatible = "maxim,max77693-charger"; + + maxim,constant-microvolt = <4350000>; + maxim,min-system-microvolt = <3600000>; + maxim,thermal-regulation-celsius = <100>; + maxim,battery-overcurrent-microamp = <3500000>; + maxim,charge-input-threshold-microvolt = <4300000>; + }; + }; + }; + + i2c_max77693_fuel: i2c-gpio-1 { + compatible = "i2c-gpio"; + gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>, <&gpf1 4 GPIO_ACTIVE_HIGH>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + max77693-fuel-gauge@36 { + compatible = "maxim,max17047"; + interrupt-parent = <&gpx2>; + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + reg = <0x36>; + + maxim,over-heat-temp = <700>; + maxim,over-volt = <4500>; + }; + }; + + i2c-mhl { + compatible = "i2c-gpio"; + gpios = <&gpf0 4 GPIO_ACTIVE_HIGH>, <&gpf0 6 GPIO_ACTIVE_HIGH>; + i2c-gpio,delay-us = <100>; + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-0 = <&i2c_mhl_bus>; + pinctrl-names = "default"; + status = "okay"; + + sii9234: hdmi-bridge@39 { + compatible = "sil,sii9234"; + avcc33-supply = <&vcc33mhl>; + iovcc18-supply = <&vcc18mhl>; + avcc12-supply = <&vsil12>; + cvcc12-supply = <&vsil12>; + reset-gpios = <&gpf3 4 GPIO_ACTIVE_LOW>; + interrupt-parent = <&gpf3>; + interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; + reg = <0x39>; + + port { + mhl_to_hdmi: endpoint { + remote-endpoint = <&hdmi_to_mhl>; + }; + }; + }; + }; + + camera: camera { + pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>; + pinctrl-names = "default"; + status = "okay"; + assigned-clocks = <&clock CLK_MOUT_CAM0>, + <&clock CLK_MOUT_CAM1>; + assigned-clock-parents = <&clock CLK_XUSBXTI>, + <&clock CLK_XUSBXTI>; + }; + + wlan_pwrseq: sdhci3-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&gpj0 0 GPIO_ACTIVE_LOW>; + clocks = <&max77686 MAX77686_CLK_PMIC>; + clock-names = "ext_clock"; + }; + + thermistor-ap { + compatible = "murata,ncp15wb473"; + pullup-uv = <1800000>; /* VCC_1.8V_AP */ + pullup-ohm = <100000>; /* 100K */ + pulldown-ohm = <100000>; /* 100K */ + io-channels = <&adc 1>; /* AP temperature */ + }; + + thermistor-battery { + compatible = "murata,ncp15wb473"; + pullup-uv = <1800000>; /* VCC_1.8V_AP */ + pullup-ohm = <100000>; /* 100K */ + pulldown-ohm = <100000>; /* 100K */ + io-channels = <&adc 2>; /* Battery temperature */ + }; + + thermal-zones { + cpu_thermal: cpu-thermal { + cooling-maps { + map0 { + /* Corresponds to 800MHz at freq_table */ + cooling-device = <&cpu0 7 7>; + }; + map1 { + /* Corresponds to 200MHz at freq_table */ + cooling-device = <&cpu0 13 13>; + }; + }; + }; + }; + +}; + +&adc { + vdd-supply = <&ldo3_reg>; + status = "okay"; +}; + +&bus_dmc { + devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + vdd-supply = <&buck1_reg>; + status = "okay"; +}; + +&bus_acp { + devfreq = <&bus_dmc>; + status = "okay"; +}; + +&bus_c2c { + devfreq = <&bus_dmc>; + status = "okay"; +}; + +&bus_leftbus { + devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; + vdd-supply = <&buck3_reg>; + status = "okay"; +}; + +&bus_rightbus { + devfreq = <&bus_leftbus>; + status = "okay"; +}; + +&bus_display { + devfreq = <&bus_leftbus>; + status = "okay"; +}; + +&bus_fsys { + devfreq = <&bus_leftbus>; + status = "okay"; +}; + +&bus_peri { + devfreq = <&bus_leftbus>; + status = "okay"; +}; + +&bus_mfc { + devfreq = <&bus_leftbus>; + status = "okay"; +}; + +&cpu0 { + cpu0-supply = <&buck2_reg>; +}; + +&csis_0 { + status = "okay"; + vddcore-supply = <&ldo8_reg>; + vddio-supply = <&ldo10_reg>; + assigned-clocks = <&clock CLK_MOUT_CSIS0>, + <&clock CLK_SCLK_CSIS0>; + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; + assigned-clock-rates = <0>, <176000000>; + + /* Camera C (3) MIPI CSI-2 (CSIS0) */ + port@3 { + reg = <3>; + csis0_ep: endpoint { + remote-endpoint = <&s5c73m3_ep>; + data-lanes = <1 2 3 4>; + samsung,csis-hs-settle = <12>; + }; + }; +}; + +&csis_1 { + status = "okay"; + vddcore-supply = <&ldo8_reg>; + vddio-supply = <&ldo10_reg>; + assigned-clocks = <&clock CLK_MOUT_CSIS1>, + <&clock CLK_SCLK_CSIS1>; + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; + assigned-clock-rates = <0>, <176000000>; + + /* Camera D (4) MIPI CSI-2 (CSIS1) */ + port@4 { + reg = <4>; + csis1_ep: endpoint { + remote-endpoint = <&is_s5k6a3_ep>; + data-lanes = <1>; + samsung,csis-hs-settle = <18>; + samsung,csis-wclk; + }; + }; +}; + +&exynos_usbphy { + vbus-supply = <&esafeout1_reg>; + status = "okay"; +}; + +&fimc_0 { + status = "okay"; + assigned-clocks = <&clock CLK_MOUT_FIMC0>, + <&clock CLK_SCLK_FIMC0>; + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; + assigned-clock-rates = <0>, <176000000>; +}; + +&fimc_1 { + status = "okay"; + assigned-clocks = <&clock CLK_MOUT_FIMC1>, + <&clock CLK_SCLK_FIMC1>; + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; + assigned-clock-rates = <0>, <176000000>; +}; + +&fimc_2 { + status = "okay"; + assigned-clocks = <&clock CLK_MOUT_FIMC2>, + <&clock CLK_SCLK_FIMC2>; + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; + assigned-clock-rates = <0>, <176000000>; +}; + +&fimc_3 { + status = "okay"; + assigned-clocks = <&clock CLK_MOUT_FIMC3>, + <&clock CLK_SCLK_FIMC3>; + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; + assigned-clock-rates = <0>, <176000000>; +}; + +&fimc_is { + pinctrl-0 = <&fimc_is_uart>; + pinctrl-names = "default"; + status = "okay"; + + i2c1_isp: i2c-isp@12140000 { + pinctrl-0 = <&fimc_is_i2c1>; + pinctrl-names = "default"; + + s5k6a3@10 { + compatible = "samsung,s5k6a3"; + reg = <0x10>; + svdda-supply = <&cam_io_reg>; + svddio-supply = <&ldo19_reg>; + afvdd-supply = <&ldo19_reg>; + clock-frequency = <24000000>; + /* CAM_B_CLKOUT */ + clocks = <&camera 1>; + clock-names = "extclk"; + samsung,camclk-out = <1>; + gpios = <&gpm1 6 GPIO_ACTIVE_HIGH>; + + port { + is_s5k6a3_ep: endpoint { + remote-endpoint = <&csis1_ep>; + data-lanes = <1>; + }; + }; + }; + }; +}; + +&fimc_lite_0 { + status = "okay"; +}; + +&fimc_lite_1 { + status = "okay"; +}; + +&fimd { + status = "okay"; +}; + +&hdmi { + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_hpd>; + vdd-supply = <&ldo3_reg>; + vdd_osc-supply = <&ldo4_reg>; + vdd_pll-supply = <&ldo3_reg>; + ddc = <&i2c_5>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + reg = <1>; + hdmi_to_mhl: endpoint { + remote-endpoint = <&mhl_to_hdmi>; + }; + }; + }; +}; + +&hsotg { + vusb_d-supply = <&ldo15_reg>; + vusb_a-supply = <&ldo12_reg>; + dr_mode = "peripheral"; + status = "okay"; +}; + +&i2c_0 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-slave-addr = <0x10>; + samsung,i2c-max-bus-freq = <400000>; + pinctrl-0 = <&i2c0_bus>; + pinctrl-names = "default"; + + status = "disabled"; + + s5c73m3@3c { + compatible = "samsung,s5c73m3"; + reg = <0x3c>; + standby-gpios = <&gpm0 1 GPIO_ACTIVE_LOW>; /* ISP_STANDBY */ + xshutdown-gpios = <&gpf1 3 GPIO_ACTIVE_LOW>; /* ISP_RESET */ + vdd-int-supply = <&buck9_reg>; + vddio-cis-supply = <&ldo9_reg>; + vdda-supply = <&ldo17_reg>; + vddio-host-supply = <&ldo18_reg>; + vdd-af-supply = <&cam_af_reg>; + vdd-reg-supply = <&cam_io_reg>; + clock-frequency = <24000000>; + /* CAM_A_CLKOUT */ + clocks = <&camera 0>; + clock-names = "cis_extclk"; + port { + s5c73m3_ep: endpoint { + remote-endpoint = <&csis0_ep>; + data-lanes = <1 2 3 4>; + }; + }; + }; +}; + +&i2c_4 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-slave-addr = <0x10>; + samsung,i2c-max-bus-freq = <100000>; + pinctrl-0 = <&i2c4_bus>; + pinctrl-names = "default"; + status = "okay"; + + wm1811: wm1811@1a { + compatible = "wlf,wm1811"; + reg = <0x1a>; + clocks = <&pmu_system_controller 0>; + clock-names = "MCLK1"; + DCVDD-supply = <&ldo3_reg>; + DBVDD1-supply = <&ldo3_reg>; + wlf,ldo1ena = <&gpj0 4 0>; + }; +}; + +&i2c_5 { + status = "okay"; +}; + +&i2c_7 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-slave-addr = <0x10>; + samsung,i2c-max-bus-freq = <100000>; + pinctrl-0 = <&i2c7_bus>; + pinctrl-names = "default"; + status = "okay"; + + max77686: max77686_pmic@9 { + compatible = "maxim,max77686"; + interrupt-parent = <&gpx0>; + interrupts = <7 IRQ_EDGE_TYPE_NONE>; + reg = <0x09>; + #clock-cells = <1>; + + voltage-regulators { + ldo1_reg: LDO1 { + regulator-name = "VALIVE_1.0V_AP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + }; + + ldo2_reg: LDO2 { + regulator-name = "VM1M2_1.2V_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + ldo3_reg: LDO3 { + regulator-name = "VCC_1.8V_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + ldo4_reg: LDO4 { + regulator-name = "VCC_2.8V_AP"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-always-on; + }; + + ldo5_reg: LDO5 { + regulator-name = "VTOUCH_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + ldo6_reg: LDO6 { + regulator-name = "VMPLL_1.0V_AP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + ldo7_reg: LDO7 { + regulator-name = "VPLL_1.0V_AP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + ldo8_reg: LDO8 { + regulator-name = "VMIPI_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + ldo9_reg: LDO9 { + regulator-name = "CAM_ISP_MIPI_1.2V"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo10_reg: LDO10 { + regulator-name = "VMIPI_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + ldo11_reg: LDO11 { + regulator-name = "VABB1_1.95V"; + regulator-min-microvolt = <1950000>; + regulator-max-microvolt = <1950000>; + regulator-always-on; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + ldo12_reg: LDO12 { + regulator-name = "VUOTG_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + ldo13_reg: LDO13 { + status = "disabled"; + }; + + ldo14_reg: LDO14 { + regulator-name = "VABB2_1.95V"; + regulator-min-microvolt = <1950000>; + regulator-max-microvolt = <1950000>; + regulator-always-on; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + ldo15_reg: LDO15 { + regulator-name = "VHSIC_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + ldo16_reg: LDO16 { + regulator-name = "VHSIC_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + ldo17_reg: LDO17 { + status = "disabled"; + }; + + ldo18_reg: LDO18 { + regulator-name = "CAM_ISP_SENSOR_IO_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "VT_CAM_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDDQ_PRE_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "VTF_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + maxim,ena-gpios = <&gpy2 0 GPIO_ACTIVE_HIGH>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VMEM_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>; + }; + + ldo23_reg: LDO23 { + regulator-name = "TSP_AVDD_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "TSP_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo25_reg: LDO25 { + status = "disabled"; + }; + + ldo26_reg: LDO26 { + regulator-name = "MOTOR_VCC_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_arm"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-boot-on; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1150000>; + regulator-boot-on; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + buck5_reg: BUCK5 { + regulator-name = "VMEM_1.2V_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + }; + + buck6_reg: BUCK6 { + regulator-name = "VCC_SUB_1.35V"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + }; + + buck7_reg: BUCK7 { + regulator-name = "VCC_SUB_2.0V"; + regulator-min-microvolt = <2000000>; + regulator-max-microvolt = <2000000>; + regulator-always-on; + }; + + buck8_reg: BUCK8 { + regulator-name = "VMEM_VDDF_3.0V"; + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>; + }; + + buck9_reg: BUCK9 { + regulator-name = "CAM_ISP_CORE_1.2V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; +}; + +&i2c_8 { + status = "okay"; +}; + +&i2s0 { + pinctrl-0 = <&i2s0_bus>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mixer { + status = "okay"; +}; + +&mshc_0 { + broken-cd; + non-removable; + card-detect-delay = <200>; + vmmc-supply = <&ldo22_reg>; + clock-frequency = <400000000>; + samsung,dw-mshc-ciu-div = <0>; + samsung,dw-mshc-sdr-timing = <2 3>; + samsung,dw-mshc-ddr-timing = <1 2>; + pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; + pinctrl-names = "default"; + status = "okay"; + bus-width = <8>; + cap-mmc-highspeed; +}; + +&pmu_system_controller { + assigned-clocks = <&pmu_system_controller 0>; + assigned-clock-parents = <&clock CLK_XUSBXTI>; +}; + +&pinctrl_0 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep0>; + + mhl_int: mhl-int { + samsung,pins = "gpf3-5"; + samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; + }; + + i2c_mhl_bus: i2c-mhl-bus { + samsung,pins = "gpf0-4", "gpf0-6"; + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; + samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; + }; + + sleep0: sleep-states { + PIN_SLP(gpa0-0, INPUT, NONE); + PIN_SLP(gpa0-1, OUT0, NONE); + PIN_SLP(gpa0-2, INPUT, NONE); + PIN_SLP(gpa0-3, INPUT, UP); + PIN_SLP(gpa0-4, INPUT, NONE); + PIN_SLP(gpa0-5, INPUT, DOWN); + PIN_SLP(gpa0-6, INPUT, DOWN); + PIN_SLP(gpa0-7, INPUT, UP); + + 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, INPUT, NONE); + PIN_SLP(gpb-1, INPUT, NONE); + PIN_SLP(gpb-2, INPUT, NONE); + PIN_SLP(gpb-3, INPUT, NONE); + PIN_SLP(gpb-4, INPUT, DOWN); + PIN_SLP(gpb-5, INPUT, UP); + 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, NONE); + PIN_SLP(gpc1-1, PREV, NONE); + PIN_SLP(gpc1-2, INPUT, NONE); + PIN_SLP(gpc1-3, INPUT, NONE); + PIN_SLP(gpc1-4, INPUT, NONE); + + 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, DOWN); + PIN_SLP(gpd1-1, INPUT, DOWN); + PIN_SLP(gpd1-2, INPUT, NONE); + PIN_SLP(gpd1-3, INPUT, NONE); + + PIN_SLP(gpf0-0, INPUT, NONE); + PIN_SLP(gpf0-1, INPUT, NONE); + PIN_SLP(gpf0-2, INPUT, DOWN); + PIN_SLP(gpf0-3, INPUT, DOWN); + PIN_SLP(gpf0-4, INPUT, NONE); + PIN_SLP(gpf0-5, INPUT, DOWN); + PIN_SLP(gpf0-6, INPUT, NONE); + PIN_SLP(gpf0-7, INPUT, DOWN); + + PIN_SLP(gpf1-0, INPUT, DOWN); + PIN_SLP(gpf1-1, INPUT, DOWN); + PIN_SLP(gpf1-2, INPUT, DOWN); + PIN_SLP(gpf1-3, INPUT, DOWN); + PIN_SLP(gpf1-4, INPUT, NONE); + PIN_SLP(gpf1-5, INPUT, NONE); + PIN_SLP(gpf1-6, INPUT, DOWN); + PIN_SLP(gpf1-7, PREV, NONE); + + PIN_SLP(gpf2-0, PREV, NONE); + PIN_SLP(gpf2-1, INPUT, DOWN); + PIN_SLP(gpf2-2, INPUT, DOWN); + PIN_SLP(gpf2-3, INPUT, DOWN); + PIN_SLP(gpf2-4, INPUT, DOWN); + PIN_SLP(gpf2-5, INPUT, DOWN); + PIN_SLP(gpf2-6, INPUT, NONE); + PIN_SLP(gpf2-7, INPUT, NONE); + + PIN_SLP(gpf3-0, INPUT, NONE); + PIN_SLP(gpf3-1, PREV, NONE); + PIN_SLP(gpf3-2, PREV, NONE); + PIN_SLP(gpf3-3, PREV, NONE); + PIN_SLP(gpf3-4, OUT1, NONE); + PIN_SLP(gpf3-5, INPUT, DOWN); + + PIN_SLP(gpj0-0, PREV, NONE); + PIN_SLP(gpj0-1, PREV, NONE); + PIN_SLP(gpj0-2, PREV, NONE); + PIN_SLP(gpj0-3, INPUT, DOWN); + PIN_SLP(gpj0-4, PREV, NONE); + PIN_SLP(gpj0-5, PREV, NONE); + PIN_SLP(gpj0-6, INPUT, DOWN); + PIN_SLP(gpj0-7, INPUT, DOWN); + + PIN_SLP(gpj1-0, INPUT, DOWN); + PIN_SLP(gpj1-1, PREV, NONE); + PIN_SLP(gpj1-2, PREV, NONE); + PIN_SLP(gpj1-3, INPUT, DOWN); + PIN_SLP(gpj1-4, INPUT, DOWN); + }; +}; + +&pinctrl_1 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep1>; + + hdmi_hpd: hdmi-hpd { + samsung,pins = "gpx3-7"; + samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; + }; + + sleep1: sleep-states { + PIN_SLP(gpk0-0, PREV, NONE); + PIN_SLP(gpk0-1, PREV, NONE); + PIN_SLP(gpk0-2, OUT0, NONE); + PIN_SLP(gpk0-3, PREV, NONE); + PIN_SLP(gpk0-4, PREV, NONE); + PIN_SLP(gpk0-5, PREV, NONE); + PIN_SLP(gpk0-6, PREV, NONE); + + PIN_SLP(gpk1-0, INPUT, DOWN); + PIN_SLP(gpk1-1, INPUT, DOWN); + 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(gpk3-0, OUT0, NONE); + PIN_SLP(gpk3-1, INPUT, NONE); + PIN_SLP(gpk3-2, INPUT, DOWN); + PIN_SLP(gpk3-3, INPUT, NONE); + PIN_SLP(gpk3-4, INPUT, NONE); + PIN_SLP(gpk3-5, INPUT, NONE); + PIN_SLP(gpk3-6, INPUT, NONE); + + 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(gpl0-4, PREV, NONE); + PIN_SLP(gpl0-6, PREV, NONE); + + PIN_SLP(gpl1-0, INPUT, DOWN); + PIN_SLP(gpl1-1, INPUT, DOWN); + PIN_SLP(gpl2-0, INPUT, DOWN); + PIN_SLP(gpl2-1, INPUT, DOWN); + PIN_SLP(gpl2-2, INPUT, DOWN); + PIN_SLP(gpl2-3, INPUT, DOWN); + PIN_SLP(gpl2-4, INPUT, DOWN); + PIN_SLP(gpl2-5, INPUT, DOWN); + PIN_SLP(gpl2-6, PREV, NONE); + PIN_SLP(gpl2-7, 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, NONE); + PIN_SLP(gpm1-3, INPUT, NONE); + PIN_SLP(gpm1-4, INPUT, NONE); + PIN_SLP(gpm1-5, INPUT, NONE); + PIN_SLP(gpm1-6, INPUT, DOWN); + + PIN_SLP(gpm2-0, INPUT, NONE); + PIN_SLP(gpm2-1, INPUT, NONE); + PIN_SLP(gpm2-2, INPUT, DOWN); + PIN_SLP(gpm2-3, INPUT, DOWN); + PIN_SLP(gpm2-4, INPUT, DOWN); + + PIN_SLP(gpm3-0, PREV, NONE); + PIN_SLP(gpm3-1, PREV, NONE); + PIN_SLP(gpm3-2, PREV, NONE); + PIN_SLP(gpm3-3, OUT1, NONE); + 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); + + PIN_SLP(gpy0-0, INPUT, DOWN); + PIN_SLP(gpy0-1, INPUT, DOWN); + PIN_SLP(gpy0-2, INPUT, DOWN); + PIN_SLP(gpy0-3, INPUT, DOWN); + PIN_SLP(gpy0-4, INPUT, DOWN); + PIN_SLP(gpy0-5, INPUT, DOWN); + + PIN_SLP(gpy1-0, INPUT, DOWN); + PIN_SLP(gpy1-1, INPUT, DOWN); + PIN_SLP(gpy1-2, INPUT, DOWN); + PIN_SLP(gpy1-3, INPUT, DOWN); + + PIN_SLP(gpy2-0, PREV, NONE); + PIN_SLP(gpy2-1, INPUT, DOWN); + PIN_SLP(gpy2-2, INPUT, NONE); + PIN_SLP(gpy2-3, INPUT, NONE); + PIN_SLP(gpy2-4, INPUT, NONE); + PIN_SLP(gpy2-5, INPUT, NONE); + + PIN_SLP(gpy3-0, INPUT, DOWN); + PIN_SLP(gpy3-1, INPUT, DOWN); + PIN_SLP(gpy3-2, INPUT, DOWN); + PIN_SLP(gpy3-3, INPUT, DOWN); + PIN_SLP(gpy3-4, INPUT, DOWN); + PIN_SLP(gpy3-5, INPUT, DOWN); + PIN_SLP(gpy3-6, INPUT, DOWN); + PIN_SLP(gpy3-7, INPUT, DOWN); + + PIN_SLP(gpy4-0, INPUT, DOWN); + PIN_SLP(gpy4-1, INPUT, DOWN); + PIN_SLP(gpy4-2, INPUT, DOWN); + PIN_SLP(gpy4-3, INPUT, DOWN); + PIN_SLP(gpy4-4, INPUT, DOWN); + PIN_SLP(gpy4-5, INPUT, DOWN); + PIN_SLP(gpy4-6, INPUT, DOWN); + PIN_SLP(gpy4-7, INPUT, DOWN); + + PIN_SLP(gpy5-0, INPUT, DOWN); + PIN_SLP(gpy5-1, INPUT, DOWN); + PIN_SLP(gpy5-2, INPUT, DOWN); + PIN_SLP(gpy5-3, INPUT, DOWN); + PIN_SLP(gpy5-4, INPUT, DOWN); + PIN_SLP(gpy5-5, INPUT, DOWN); + PIN_SLP(gpy5-6, INPUT, DOWN); + PIN_SLP(gpy5-7, INPUT, DOWN); + + PIN_SLP(gpy6-0, INPUT, DOWN); + PIN_SLP(gpy6-1, INPUT, DOWN); + PIN_SLP(gpy6-2, INPUT, DOWN); + PIN_SLP(gpy6-3, INPUT, DOWN); + PIN_SLP(gpy6-4, INPUT, DOWN); + PIN_SLP(gpy6-5, INPUT, DOWN); + PIN_SLP(gpy6-6, INPUT, DOWN); + PIN_SLP(gpy6-7, INPUT, DOWN); + }; +}; + +&pinctrl_2 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep2>; + + sleep2: sleep-states { + PIN_SLP(gpz-0, INPUT, DOWN); + PIN_SLP(gpz-1, INPUT, DOWN); + PIN_SLP(gpz-2, INPUT, DOWN); + PIN_SLP(gpz-3, INPUT, DOWN); + PIN_SLP(gpz-4, INPUT, DOWN); + PIN_SLP(gpz-5, INPUT, DOWN); + PIN_SLP(gpz-6, INPUT, DOWN); + }; +}; + +&pinctrl_3 { + pinctrl-names = "default"; + pinctrl-0 = <&sleep3>; + + sleep3: sleep-states { + PIN_SLP(gpv0-0, INPUT, DOWN); + PIN_SLP(gpv0-1, INPUT, DOWN); + PIN_SLP(gpv0-2, INPUT, DOWN); + PIN_SLP(gpv0-3, INPUT, DOWN); + PIN_SLP(gpv0-4, INPUT, DOWN); + PIN_SLP(gpv0-5, INPUT, DOWN); + PIN_SLP(gpv0-6, INPUT, DOWN); + PIN_SLP(gpv0-7, INPUT, DOWN); + + PIN_SLP(gpv1-0, INPUT, DOWN); + PIN_SLP(gpv1-1, INPUT, DOWN); + PIN_SLP(gpv1-2, INPUT, DOWN); + PIN_SLP(gpv1-3, INPUT, DOWN); + PIN_SLP(gpv1-4, INPUT, DOWN); + PIN_SLP(gpv1-5, INPUT, DOWN); + PIN_SLP(gpv1-6, INPUT, DOWN); + PIN_SLP(gpv1-7, INPUT, DOWN); + + PIN_SLP(gpv2-0, INPUT, DOWN); + PIN_SLP(gpv2-1, INPUT, DOWN); + PIN_SLP(gpv2-2, INPUT, DOWN); + PIN_SLP(gpv2-3, INPUT, DOWN); + PIN_SLP(gpv2-4, INPUT, DOWN); + PIN_SLP(gpv2-5, INPUT, DOWN); + PIN_SLP(gpv2-6, INPUT, DOWN); + PIN_SLP(gpv2-7, INPUT, DOWN); + + PIN_SLP(gpv3-0, INPUT, DOWN); + PIN_SLP(gpv3-1, INPUT, DOWN); + PIN_SLP(gpv3-2, INPUT, DOWN); + PIN_SLP(gpv3-3, INPUT, DOWN); + PIN_SLP(gpv3-4, INPUT, DOWN); + PIN_SLP(gpv3-5, INPUT, DOWN); + PIN_SLP(gpv3-6, INPUT, DOWN); + PIN_SLP(gpv3-7, INPUT, DOWN); + + PIN_SLP(gpv4-0, INPUT, DOWN); + }; +}; + +&pwm { + pinctrl-0 = <&pwm0_out>; + pinctrl-names = "default"; + samsung,pwm-outputs = <0>; + status = "okay"; +}; + +&rtc { + status = "okay"; + clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>; + clock-names = "rtc", "rtc_src"; +}; + +&sdhci_2 { + bus-width = <4>; + cd-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>; + cd-inverted; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; + pinctrl-names = "default"; + vmmc-supply = <&ldo21_reg>; + status = "okay"; +}; + +&sdhci_3 { + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>; + + broken-cd; + + mmc-pwrseq = <&wlan_pwrseq>; + + bus-width = <4>; + status = "okay"; + + brcmf: wifi@1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&gpx2>; + interrupts = <5 IRQ_TYPE_NONE>; + interrupt-names = "host-wake"; + }; +}; + +&serial_0 { + status = "okay"; +}; + +&serial_1 { + status = "okay"; +}; + +&serial_2 { + status = "okay"; +}; + +&serial_3 { + status = "okay"; +}; + +&sleep0 { + gpf1-0 { + samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; + }; +}; + +&spi_1 { + pinctrl-names = "default"; + pinctrl-0 = <&spi1_bus>; + cs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>; + status = "okay"; + + s5c73m3_spi: s5c73m3@0 { + compatible = "samsung,s5c73m3"; + spi-max-frequency = <50000000>; + reg = <0>; + controller-data { + samsung,spi-feedback-delay = <2>; + }; + }; +}; + +&tmu { + vtmu-supply = <&ldo10_reg>; + status = "okay"; +}; + +&pmu_system_controller { + compatible = "samsung,exynos4210-pmu", "syscon", "simple-mfd"; + + reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x80c>; + + mode-normal = <0x12345670>; + mode-bootloader = <0x12345671>; + mode-download = <0x12345671>; + mode-recovery = <0x12345674>; + }; +}; diff --git a/arch/arm/boot/dts/exynos4412-t0.dts b/arch/arm/boot/dts/exynos4412-t0.dts new file mode 100644 index 000000000000..c49abe857b6f --- /dev/null +++ b/arch/arm/boot/dts/exynos4412-t0.dts @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +#include "exynos4412-midas.dtsi" + +/ { + compatible = "samsung,t0", "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; + model = "Samsung T0 (GT-N7100, GT-N7105) based on Exynos4412"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0x80000000>; + }; + +}; + +&buck9_reg { + maxim,ena-gpios = <&gpm1 0 GPIO_ACTIVE_HIGH>; +}; + +&cam_io_reg { + gpio = <&gpm0 7 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&cam_af_reg { + gpio = <&gpm1 1 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&ldo13_reg { + regulator-name = "VCC_1.8V_LCD"; + regulator-min-microvolt = <18000000>; + regulator-max-microvolt = <18000000>; + regulator-always-on; + status = "okay"; +}; + +&ldo23_reg { + regulator-always-on; +}; + +&ldo24_reg { + regulator-always-on; +}; + +&ldo25_reg { + regulator-name = "VCI_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + status = "okay"; +}; -- 2.15.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] ARM: dts: add Samsung's exynos4412-based midas boards 2017-12-12 14:08 ` [PATCH 2/3] ARM: dts: add Samsung's exynos4412-based midas boards Simon Shields @ 2017-12-14 8:48 ` Krzysztof Kozlowski [not found] ` <CAJKOXPfkQvo09r6WpZG-E+EgUk+p32dVycxWi6L07kHzv1EsWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Krzysztof Kozlowski @ 2017-12-14 8:48 UTC (permalink / raw) To: Simon Shields Cc: linux-samsung-soc, Kukjin Kim, devicetree, Marek Szyprowski, Bartłomiej Żołnierkiewicz Hi Simon, Thanks for new boards! +Cc Marek, Bartlomiej, On Tue, Dec 12, 2017 at 3:08 PM, Simon Shields <simon@lineageos.org> wrote: > "midas" is the codename for a family of smartphones released by Samsung > Mobile. It includes the Galaxy S3 (GT-I9300/I9305) and the Galaxy > Note 2 (GT-N7100/N7105). The boards largely have the same peripherals: > the main differences are touchscreen, display panel and cellular modem. > > Signed-off-by: Simon Shields <simon@lineageos.org> > --- > arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 144 +++ > arch/arm/boot/dts/exynos4412-m0.dts | 14 + > arch/arm/boot/dts/exynos4412-m3.dts | 19 + > arch/arm/boot/dts/exynos4412-midas.dtsi | 1291 +++++++++++++++++++++++++++ M0 is essentially Trats2. You are duplicating here almost entire Trats2 which means: 1. A lot of duplicated code thus it will require more maintenance to keep DTS synced, 2. It is very difficult to spot the changes and possible errors between Trats2 and Midas DTSI/M0. Please make a generic family of devices based on Midas, including Trats2. You might make it in steps for easier review: 1. Split common Trats2 part, 2. Add new boards. Also, few minor nits below. > arch/arm/boot/dts/exynos4412-t0.dts | 51 ++ > 5 files changed, 1519 insertions(+) > create mode 100644 arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi > create mode 100644 arch/arm/boot/dts/exynos4412-m0.dts > create mode 100644 arch/arm/boot/dts/exynos4412-m3.dts > create mode 100644 arch/arm/boot/dts/exynos4412-midas.dtsi > create mode 100644 arch/arm/boot/dts/exynos4412-t0.dts > > diff --git a/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi b/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi > new file mode 100644 > index 000000000000..536195adfe65 > --- /dev/null > +++ b/arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi > @@ -0,0 +1,144 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/dts-v1/; > +#include "exynos4412-midas.dtsi" > + > +/ { > + regulators { > + lcd_vdd3_reg: voltage-regulator-10 { > + compatible = "regulator-fixed"; > + regulator-name = "LCD_VDD_2.2V"; > + regulator-min-microvolt = <2200000>; > + regulator-max-microvolt = <2200000>; > + enable-active-high; > + gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>; > + }; > + > + ps_als_reg: voltage-regulator-11 { > + compatible = "regulator-fixed"; > + regulator-name = "LED_A_3.0V"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + enable-active-high; > + gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>; > + }; > + }; > + > + i2c_ak8975: i2c-gpio-10 { > + compatible = "i2c-gpio"; > + gpios = <&gpy2 4 GPIO_ACTIVE_HIGH>, <&gpy2 5 GPIO_ACTIVE_HIGH>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + ak8975@c { > + compatible = "asahi-kasei,ak8975"; > + reg = <0x0c>; > + gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>; > + }; > + }; > + > + i2c_cm36651: i2c-gpio-11 { > + compatible = "i2c-gpio"; > + gpios = <&gpf0 0 GPIO_ACTIVE_LOW>, <&gpf0 1 GPIO_ACTIVE_LOW>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + cm36651@18 { > + compatible = "capella,cm36651"; > + reg = <0x18>; > + interrupt-parent = <&gpx0>; > + interrupts = <2 IRQ_EDGE_TYPE_FALLING>; > + vled-supply = <&ps_als_reg>; > + }; > + }; > +}; > + > +&buck9_reg { > + maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>; > +}; > + > +&cam_af_reg { > + gpio = <&gpm0 4 GPIO_ACTIVE_HIGH>; > + status = "okay"; > +}; > + > +&cam_io_reg { > + gpio = <&gpm0 2 GPIO_ACTIVE_HIGH>; > + status = "okay"; > +}; > + > +&dsi_0 { > + vddcore-supply = <&ldo8_reg>; > + vddio-supply = <&ldo10_reg>; > + samsung,burst-clock-frequency = <500000000>; > + samsung,esc-clock-frequency = <20000000>; > + samsung,pll-clock-frequency = <24000000>; > + status = "okay"; > + > + panel@0 { > + compatible = "samsung,s6e8aa0"; > + reg = <0>; > + vdd3-supply = <&lcd_vdd3_reg>; > + vci-supply = <&ldo25_reg>; > + reset-gpios = <&gpf2 1 GPIO_ACTIVE_HIGH>; > + power-on-delay= <50>; > + reset-delay = <100>; > + init-delay = <100>; > + flip-horizontal; > + flip-vertical; > + panel-width-mm = <58>; > + panel-height-mm = <103>; > + > + display-timings { > + timing-0 { > + clock-frequency = <57153600>; > + hactive = <720>; > + vactive = <1280>; > + hfront-porch = <5>; > + hback-porch = <5>; > + hsync-len = <5>; > + vfront-porch = <13>; > + vback-porch = <1>; > + vsync-len = <2>; > + }; > + }; > + }; > +}; > + > +&i2c_0 { > + status = "okay"; > +}; > + > +&i2c_3 { > + samsung,i2c-sda-delay = <100>; > + samsung,i2c-slave-addr = <0x10>; > + samsung,i2c-max-bus-freq = <400000>; > + pinctrl-0 = <&i2c3_bus>; > + pinctrl-names = "default"; > + status = "okay"; > + > + mms114-touchscreen@48 { > + compatible = "melfas,mms114"; > + reg = <0x48>; > + interrupt-parent = <&gpm2>; > + interrupts = <3 IRQ_EDGE_TYPE_FALLING>; > + x-size = <720>; > + y-size = <1280>; > + avdd-supply = <&ldo23_reg>; > + vdd-supply = <&ldo24_reg>; > + }; > +}; > + > +&ldo17_reg { > + regulator-name = "CAM_SENSOR_CORE_1.2V"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > +}; > + > +&ldo25_reg { > + regulator-name = "LCD_VCC_3.3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > +}; > + > diff --git a/arch/arm/boot/dts/exynos4412-m0.dts b/arch/arm/boot/dts/exynos4412-m0.dts > new file mode 100644 > index 000000000000..18aff81682a9 > --- /dev/null > +++ b/arch/arm/boot/dts/exynos4412-m0.dts > @@ -0,0 +1,14 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/dts-v1/; > +#include "exynos4412-galaxy-s3.dtsi" > + > +/ { > + compatible = "samsung,m0", "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; > + model = "Samsung M0 (GT-I9300) based on Exynos4412"; > + > + memory@40000000 { > + device_type = "memory"; > + reg = <0x40000000 0x40000000>; > + }; > +}; > + > diff --git a/arch/arm/boot/dts/exynos4412-m3.dts b/arch/arm/boot/dts/exynos4412-m3.dts > new file mode 100644 > index 000000000000..e13ee49ad867 > --- /dev/null > +++ b/arch/arm/boot/dts/exynos4412-m3.dts > @@ -0,0 +1,19 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/dts-v1/; > +#include "exynos4412-galaxy-s3.dtsi" > + > +/ { > + compatible = "samsung,m3", "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; > + model = "Samsung M3 (GT-I9305) based on Exynos4412"; > + > + memory@40000000 { > + device_type = "memory"; > + reg = <0x40000000 0x80000000>; > + }; > +}; > + > +&i2c0_bus { > + // SCL and SDA pins are swapped Use /* comments (except SPDX line). > + samsung,pins = "gpd1-1", "gpd1-0"; > +}; > + > diff --git a/arch/arm/boot/dts/exynos4412-midas.dtsi b/arch/arm/boot/dts/exynos4412-midas.dtsi > new file mode 100644 > index 000000000000..65c1e2d14d26 > --- /dev/null > +++ b/arch/arm/boot/dts/exynos4412-midas.dtsi > @@ -0,0 +1,1291 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/dts-v1/; > +#include "exynos4412.dtsi" > +#include "exynos4412-ppmu-common.dtsi" > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/interrupt-controller/irq.h> > +#include <dt-bindings/clock/maxim,max77686.h> > +#include <dt-bindings/pinctrl/samsung.h> > + > +/ { > + compatible = "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; > + > + aliases { > + i2c9 = &i2c_max77693; > + i2c10 = &i2c_max77693_fuel; > + }; > + > + chosen { > + stdout-path = &serial_2; > + }; > + > + firmware@204f000 { > + compatible = "samsung,secure-firmware"; > + reg = <0x0204F000 0x1000>; > + }; > + > + fixed-rate-clocks { > + xxti { > + compatible = "samsung,clock-xxti", "fixed-clock"; > + clock-frequency = <0>; > + }; > + > + xusbxti { > + compatible = "samsung,clock-xusbxti", "fixed-clock"; > + clock-frequency = <24000000>; > + }; > + }; > + > + regulators { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + cam_io_reg: voltage-regulator-0 { > + compatible = "regulator-fixed"; > + regulator-name = "CAM_SENSOR_A"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + enable-active-high; > + status = "disabled"; > + }; > + > + cam_af_reg: voltage-regulator-1 { > + compatible = "regulator-fixed"; > + regulator-name = "CAM_AF"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + enable-active-high; > + status = "disabled"; > + }; > + > + vsil12: voltage-regulator-6 { > + compatible = "regulator-fixed"; > + regulator-name = "VSIL_1.2V"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + vin-supply = <&buck7_reg>; > + }; > + > + vcc33mhl: voltage-regulator-7 { > + compatible = "regulator-fixed"; > + regulator-name = "VCC_3.3_MHL"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + vcc18mhl: voltage-regulator-8 { > + compatible = "regulator-fixed"; > + regulator-name = "VCC_1.8_MHL"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > + > + }; > + > + gpio-keys { > + compatible = "gpio-keys"; > + > + key-down { > + gpios = <&gpx3 3 GPIO_ACTIVE_LOW>; > + linux,code = <114>; > + label = "volume down"; > + debounce-interval = <10>; > + }; > + > + key-up { > + gpios = <&gpx2 2 GPIO_ACTIVE_LOW>; > + linux,code = <115>; > + label = "volume up"; > + debounce-interval = <10>; > + }; > + > + key-power { > + gpios = <&gpx2 7 GPIO_ACTIVE_LOW>; > + linux,code = <116>; > + label = "power"; > + debounce-interval = <10>; > + wakeup-source; > + }; > + > + key-home { > + gpios = <&gpx0 1 GPIO_ACTIVE_LOW>; > + linux,code = <172>; > + label = "home"; > + debounce-inteval = <10>; > + wakeup-source; > + }; > + }; > + > + i2c_max77693: i2c-gpio-0 { > + compatible = "i2c-gpio"; > + gpios = <&gpm2 0 GPIO_ACTIVE_HIGH>, <&gpm2 1 GPIO_ACTIVE_HIGH>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + status = "okay"; > + > + max77693@66 { > + compatible = "maxim,max77693"; > + interrupt-parent = <&gpx1>; > + interrupts = <5 IRQ_EDGE_TYPE_FALLING>; > + reg = <0x66>; > + > + regulators { > + esafeout1_reg: ESAFEOUT1 { > + regulator-name = "ESAFEOUT1"; > + }; > + esafeout2_reg: ESAFEOUT2 { > + regulator-name = "ESAFEOUT2"; > + }; > + charger_reg: CHARGER { > + regulator-name = "CHARGER"; > + regulator-min-microamp = <60000>; > + regulator-max-microamp = <2580000>; > + }; > + }; > + > + max77693_haptic { > + compatible = "maxim,max77693-haptic"; > + haptic-supply = <&ldo26_reg>; > + pwms = <&pwm 0 38022 0>; > + }; > + > + charger { > + compatible = "maxim,max77693-charger"; > + > + maxim,constant-microvolt = <4350000>; > + maxim,min-system-microvolt = <3600000>; > + maxim,thermal-regulation-celsius = <100>; > + maxim,battery-overcurrent-microamp = <3500000>; > + maxim,charge-input-threshold-microvolt = <4300000>; > + }; > + }; > + }; > + > + i2c_max77693_fuel: i2c-gpio-1 { > + compatible = "i2c-gpio"; > + gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>, <&gpf1 4 GPIO_ACTIVE_HIGH>; > + i2c-gpio,delay-us = <2>; > + #address-cells = <1>; > + #size-cells = <0>; > + status = "okay"; > + > + max77693-fuel-gauge@36 { > + compatible = "maxim,max17047"; > + interrupt-parent = <&gpx2>; > + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; > + reg = <0x36>; > + > + maxim,over-heat-temp = <700>; > + maxim,over-volt = <4500>; > + }; > + }; > + > + i2c-mhl { > + compatible = "i2c-gpio"; > + gpios = <&gpf0 4 GPIO_ACTIVE_HIGH>, <&gpf0 6 GPIO_ACTIVE_HIGH>; > + i2c-gpio,delay-us = <100>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pinctrl-0 = <&i2c_mhl_bus>; > + pinctrl-names = "default"; > + status = "okay"; > + > + sii9234: hdmi-bridge@39 { > + compatible = "sil,sii9234"; > + avcc33-supply = <&vcc33mhl>; > + iovcc18-supply = <&vcc18mhl>; > + avcc12-supply = <&vsil12>; > + cvcc12-supply = <&vsil12>; > + reset-gpios = <&gpf3 4 GPIO_ACTIVE_LOW>; > + interrupt-parent = <&gpf3>; > + interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; > + reg = <0x39>; > + > + port { > + mhl_to_hdmi: endpoint { > + remote-endpoint = <&hdmi_to_mhl>; > + }; > + }; > + }; > + }; > + > + camera: camera { > + pinctrl-0 = <&cam_port_a_clk_active &cam_port_b_clk_active>; > + pinctrl-names = "default"; > + status = "okay"; > + assigned-clocks = <&clock CLK_MOUT_CAM0>, > + <&clock CLK_MOUT_CAM1>; > + assigned-clock-parents = <&clock CLK_XUSBXTI>, > + <&clock CLK_XUSBXTI>; > + }; > + > + wlan_pwrseq: sdhci3-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + reset-gpios = <&gpj0 0 GPIO_ACTIVE_LOW>; > + clocks = <&max77686 MAX77686_CLK_PMIC>; > + clock-names = "ext_clock"; > + }; > + > + thermistor-ap { > + compatible = "murata,ncp15wb473"; > + pullup-uv = <1800000>; /* VCC_1.8V_AP */ > + pullup-ohm = <100000>; /* 100K */ > + pulldown-ohm = <100000>; /* 100K */ > + io-channels = <&adc 1>; /* AP temperature */ > + }; > + > + thermistor-battery { > + compatible = "murata,ncp15wb473"; > + pullup-uv = <1800000>; /* VCC_1.8V_AP */ > + pullup-ohm = <100000>; /* 100K */ > + pulldown-ohm = <100000>; /* 100K */ > + io-channels = <&adc 2>; /* Battery temperature */ > + }; > + > + thermal-zones { > + cpu_thermal: cpu-thermal { > + cooling-maps { > + map0 { > + /* Corresponds to 800MHz at freq_table */ > + cooling-device = <&cpu0 7 7>; > + }; > + map1 { > + /* Corresponds to 200MHz at freq_table */ > + cooling-device = <&cpu0 13 13>; > + }; > + }; > + }; > + }; > + > +}; > + > +&adc { > + vdd-supply = <&ldo3_reg>; > + status = "okay"; > +}; > + > +&bus_dmc { > + devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; > + vdd-supply = <&buck1_reg>; > + status = "okay"; > +}; > + > +&bus_acp { > + devfreq = <&bus_dmc>; > + status = "okay"; > +}; > + > +&bus_c2c { > + devfreq = <&bus_dmc>; > + status = "okay"; > +}; > + > +&bus_leftbus { > + devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; > + vdd-supply = <&buck3_reg>; > + status = "okay"; > +}; > + > +&bus_rightbus { > + devfreq = <&bus_leftbus>; > + status = "okay"; > +}; > + > +&bus_display { > + devfreq = <&bus_leftbus>; > + status = "okay"; > +}; > + > +&bus_fsys { > + devfreq = <&bus_leftbus>; > + status = "okay"; > +}; > + > +&bus_peri { > + devfreq = <&bus_leftbus>; > + status = "okay"; > +}; > + > +&bus_mfc { > + devfreq = <&bus_leftbus>; > + status = "okay"; > +}; > + > +&cpu0 { > + cpu0-supply = <&buck2_reg>; > +}; > + > +&csis_0 { > + status = "okay"; > + vddcore-supply = <&ldo8_reg>; > + vddio-supply = <&ldo10_reg>; > + assigned-clocks = <&clock CLK_MOUT_CSIS0>, > + <&clock CLK_SCLK_CSIS0>; > + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; > + assigned-clock-rates = <0>, <176000000>; > + > + /* Camera C (3) MIPI CSI-2 (CSIS0) */ > + port@3 { > + reg = <3>; > + csis0_ep: endpoint { > + remote-endpoint = <&s5c73m3_ep>; > + data-lanes = <1 2 3 4>; > + samsung,csis-hs-settle = <12>; > + }; > + }; > +}; > + > +&csis_1 { > + status = "okay"; > + vddcore-supply = <&ldo8_reg>; > + vddio-supply = <&ldo10_reg>; > + assigned-clocks = <&clock CLK_MOUT_CSIS1>, > + <&clock CLK_SCLK_CSIS1>; > + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; > + assigned-clock-rates = <0>, <176000000>; > + > + /* Camera D (4) MIPI CSI-2 (CSIS1) */ > + port@4 { > + reg = <4>; > + csis1_ep: endpoint { > + remote-endpoint = <&is_s5k6a3_ep>; > + data-lanes = <1>; > + samsung,csis-hs-settle = <18>; > + samsung,csis-wclk; > + }; > + }; > +}; > + > +&exynos_usbphy { > + vbus-supply = <&esafeout1_reg>; > + status = "okay"; > +}; > + > +&fimc_0 { > + status = "okay"; > + assigned-clocks = <&clock CLK_MOUT_FIMC0>, > + <&clock CLK_SCLK_FIMC0>; > + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; > + assigned-clock-rates = <0>, <176000000>; > +}; > + > +&fimc_1 { > + status = "okay"; > + assigned-clocks = <&clock CLK_MOUT_FIMC1>, > + <&clock CLK_SCLK_FIMC1>; > + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; > + assigned-clock-rates = <0>, <176000000>; > +}; > + > +&fimc_2 { > + status = "okay"; > + assigned-clocks = <&clock CLK_MOUT_FIMC2>, > + <&clock CLK_SCLK_FIMC2>; > + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; > + assigned-clock-rates = <0>, <176000000>; > +}; > + > +&fimc_3 { > + status = "okay"; > + assigned-clocks = <&clock CLK_MOUT_FIMC3>, > + <&clock CLK_SCLK_FIMC3>; > + assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; > + assigned-clock-rates = <0>, <176000000>; > +}; > + > +&fimc_is { > + pinctrl-0 = <&fimc_is_uart>; > + pinctrl-names = "default"; > + status = "okay"; > + > + i2c1_isp: i2c-isp@12140000 { > + pinctrl-0 = <&fimc_is_i2c1>; > + pinctrl-names = "default"; > + > + s5k6a3@10 { > + compatible = "samsung,s5k6a3"; > + reg = <0x10>; > + svdda-supply = <&cam_io_reg>; > + svddio-supply = <&ldo19_reg>; > + afvdd-supply = <&ldo19_reg>; > + clock-frequency = <24000000>; > + /* CAM_B_CLKOUT */ > + clocks = <&camera 1>; > + clock-names = "extclk"; > + samsung,camclk-out = <1>; > + gpios = <&gpm1 6 GPIO_ACTIVE_HIGH>; > + > + port { > + is_s5k6a3_ep: endpoint { > + remote-endpoint = <&csis1_ep>; > + data-lanes = <1>; > + }; > + }; > + }; > + }; > +}; > + > +&fimc_lite_0 { > + status = "okay"; > +}; > + > +&fimc_lite_1 { > + status = "okay"; > +}; > + > +&fimd { > + status = "okay"; > +}; > + > +&hdmi { > + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&hdmi_hpd>; > + vdd-supply = <&ldo3_reg>; > + vdd_osc-supply = <&ldo4_reg>; > + vdd_pll-supply = <&ldo3_reg>; > + ddc = <&i2c_5>; > + status = "okay"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@1 { > + reg = <1>; > + hdmi_to_mhl: endpoint { > + remote-endpoint = <&mhl_to_hdmi>; > + }; > + }; > + }; > +}; > + > +&hsotg { > + vusb_d-supply = <&ldo15_reg>; > + vusb_a-supply = <&ldo12_reg>; > + dr_mode = "peripheral"; > + status = "okay"; > +}; > + > +&i2c_0 { > + samsung,i2c-sda-delay = <100>; > + samsung,i2c-slave-addr = <0x10>; > + samsung,i2c-max-bus-freq = <400000>; > + pinctrl-0 = <&i2c0_bus>; > + pinctrl-names = "default"; > + > + status = "disabled"; > + > + s5c73m3@3c { > + compatible = "samsung,s5c73m3"; > + reg = <0x3c>; > + standby-gpios = <&gpm0 1 GPIO_ACTIVE_LOW>; /* ISP_STANDBY */ > + xshutdown-gpios = <&gpf1 3 GPIO_ACTIVE_LOW>; /* ISP_RESET */ > + vdd-int-supply = <&buck9_reg>; > + vddio-cis-supply = <&ldo9_reg>; > + vdda-supply = <&ldo17_reg>; > + vddio-host-supply = <&ldo18_reg>; > + vdd-af-supply = <&cam_af_reg>; > + vdd-reg-supply = <&cam_io_reg>; > + clock-frequency = <24000000>; > + /* CAM_A_CLKOUT */ > + clocks = <&camera 0>; > + clock-names = "cis_extclk"; > + port { > + s5c73m3_ep: endpoint { > + remote-endpoint = <&csis0_ep>; > + data-lanes = <1 2 3 4>; > + }; > + }; > + }; > +}; > + > +&i2c_4 { > + samsung,i2c-sda-delay = <100>; > + samsung,i2c-slave-addr = <0x10>; > + samsung,i2c-max-bus-freq = <100000>; > + pinctrl-0 = <&i2c4_bus>; > + pinctrl-names = "default"; > + status = "okay"; > + > + wm1811: wm1811@1a { > + compatible = "wlf,wm1811"; > + reg = <0x1a>; > + clocks = <&pmu_system_controller 0>; > + clock-names = "MCLK1"; > + DCVDD-supply = <&ldo3_reg>; > + DBVDD1-supply = <&ldo3_reg>; > + wlf,ldo1ena = <&gpj0 4 0>; > + }; > +}; > + > +&i2c_5 { > + status = "okay"; > +}; > + > +&i2c_7 { > + samsung,i2c-sda-delay = <100>; > + samsung,i2c-slave-addr = <0x10>; > + samsung,i2c-max-bus-freq = <100000>; > + pinctrl-0 = <&i2c7_bus>; > + pinctrl-names = "default"; > + status = "okay"; > + > + max77686: max77686_pmic@9 { > + compatible = "maxim,max77686"; > + interrupt-parent = <&gpx0>; > + interrupts = <7 IRQ_EDGE_TYPE_NONE>; > + reg = <0x09>; > + #clock-cells = <1>; > + > + voltage-regulators { > + ldo1_reg: LDO1 { > + regulator-name = "VALIVE_1.0V_AP"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + regulator-always-on; > + }; > + > + ldo2_reg: LDO2 { > + regulator-name = "VM1M2_1.2V_AP"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-always-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + ldo3_reg: LDO3 { > + regulator-name = "VCC_1.8V_AP"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > + ldo4_reg: LDO4 { > + regulator-name = "VCC_2.8V_AP"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + regulator-always-on; > + }; > + > + ldo5_reg: LDO5 { > + regulator-name = "VTOUCH_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > + ldo6_reg: LDO6 { > + regulator-name = "VMPLL_1.0V_AP"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + regulator-always-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + ldo7_reg: LDO7 { > + regulator-name = "VPLL_1.0V_AP"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + regulator-always-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + ldo8_reg: LDO8 { > + regulator-name = "VMIPI_1.0V"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + ldo9_reg: LDO9 { > + regulator-name = "CAM_ISP_MIPI_1.2V"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + }; > + > + ldo10_reg: LDO10 { > + regulator-name = "VMIPI_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + ldo11_reg: LDO11 { > + regulator-name = "VABB1_1.95V"; > + regulator-min-microvolt = <1950000>; > + regulator-max-microvolt = <1950000>; > + regulator-always-on; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + ldo12_reg: LDO12 { > + regulator-name = "VUOTG_3.0V"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + ldo13_reg: LDO13 { > + status = "disabled"; > + }; > + > + ldo14_reg: LDO14 { > + regulator-name = "VABB2_1.95V"; > + regulator-min-microvolt = <1950000>; > + regulator-max-microvolt = <1950000>; > + regulator-always-on; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + ldo15_reg: LDO15 { > + regulator-name = "VHSIC_1.0V"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1000000>; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + ldo16_reg: LDO16 { > + regulator-name = "VHSIC_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + ldo17_reg: LDO17 { > + status = "disabled"; > + }; > + > + ldo18_reg: LDO18 { > + regulator-name = "CAM_ISP_SENSOR_IO_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + ldo19_reg: LDO19 { > + regulator-name = "VT_CAM_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + ldo20_reg: LDO20 { > + regulator-name = "VDDQ_PRE_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + ldo21_reg: LDO21 { > + regulator-name = "VTF_2.8V"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + maxim,ena-gpios = <&gpy2 0 GPIO_ACTIVE_HIGH>; > + }; > + > + ldo22_reg: LDO22 { > + regulator-name = "VMEM_VDD_2.8V"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>; > + }; > + > + ldo23_reg: LDO23 { > + regulator-name = "TSP_AVDD_3.3V"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + }; > + > + ldo24_reg: LDO24 { > + regulator-name = "TSP_VDD_1.8V"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + ldo25_reg: LDO25 { > + status = "disabled"; > + }; > + > + ldo26_reg: LDO26 { > + regulator-name = "MOTOR_VCC_3.0V"; > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3000000>; > + }; > + > + buck1_reg: BUCK1 { > + regulator-name = "vdd_mif"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1100000>; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + buck2_reg: BUCK2 { > + regulator-name = "vdd_arm"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1500000>; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-on-in-suspend; > + }; > + }; > + > + buck3_reg: BUCK3 { > + regulator-name = "vdd_int"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1150000>; > + regulator-always-on; > + regulator-boot-on; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + buck4_reg: BUCK4 { > + regulator-name = "vdd_g3d"; > + regulator-min-microvolt = <850000>; > + regulator-max-microvolt = <1150000>; > + regulator-boot-on; > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + > + buck5_reg: BUCK5 { > + regulator-name = "VMEM_1.2V_AP"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-always-on; > + }; > + > + buck6_reg: BUCK6 { > + regulator-name = "VCC_SUB_1.35V"; > + regulator-min-microvolt = <1350000>; > + regulator-max-microvolt = <1350000>; > + regulator-always-on; > + }; > + > + buck7_reg: BUCK7 { > + regulator-name = "VCC_SUB_2.0V"; > + regulator-min-microvolt = <2000000>; > + regulator-max-microvolt = <2000000>; > + regulator-always-on; > + }; > + > + buck8_reg: BUCK8 { > + regulator-name = "VMEM_VDDF_3.0V"; > + regulator-min-microvolt = <2850000>; > + regulator-max-microvolt = <2850000>; > + maxim,ena-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>; > + }; > + > + buck9_reg: BUCK9 { > + regulator-name = "CAM_ISP_CORE_1.2V"; > + regulator-min-microvolt = <1000000>; > + regulator-max-microvolt = <1200000>; > + }; > + }; > + }; > +}; > + > +&i2c_8 { > + status = "okay"; > +}; > + > +&i2s0 { > + pinctrl-0 = <&i2s0_bus>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > + > +&mixer { > + status = "okay"; > +}; > + > +&mshc_0 { > + broken-cd; > + non-removable; > + card-detect-delay = <200>; > + vmmc-supply = <&ldo22_reg>; > + clock-frequency = <400000000>; > + samsung,dw-mshc-ciu-div = <0>; > + samsung,dw-mshc-sdr-timing = <2 3>; > + samsung,dw-mshc-ddr-timing = <1 2>; > + pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; > + pinctrl-names = "default"; > + status = "okay"; > + bus-width = <8>; > + cap-mmc-highspeed; > +}; > + > +&pmu_system_controller { > + assigned-clocks = <&pmu_system_controller 0>; > + assigned-clock-parents = <&clock CLK_XUSBXTI>; > +}; > + > +&pinctrl_0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&sleep0>; > + > + mhl_int: mhl-int { > + samsung,pins = "gpf3-5"; > + samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; > + }; > + > + i2c_mhl_bus: i2c-mhl-bus { > + samsung,pins = "gpf0-4", "gpf0-6"; > + samsung,pin-function = <EXYNOS_PIN_FUNC_2>; > + samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; > + samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; > + }; > + > + sleep0: sleep-states { > + PIN_SLP(gpa0-0, INPUT, NONE); > + PIN_SLP(gpa0-1, OUT0, NONE); > + PIN_SLP(gpa0-2, INPUT, NONE); > + PIN_SLP(gpa0-3, INPUT, UP); > + PIN_SLP(gpa0-4, INPUT, NONE); > + PIN_SLP(gpa0-5, INPUT, DOWN); > + PIN_SLP(gpa0-6, INPUT, DOWN); > + PIN_SLP(gpa0-7, INPUT, UP); > + > + 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, INPUT, NONE); > + PIN_SLP(gpb-1, INPUT, NONE); > + PIN_SLP(gpb-2, INPUT, NONE); > + PIN_SLP(gpb-3, INPUT, NONE); > + PIN_SLP(gpb-4, INPUT, DOWN); > + PIN_SLP(gpb-5, INPUT, UP); > + 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, NONE); > + PIN_SLP(gpc1-1, PREV, NONE); > + PIN_SLP(gpc1-2, INPUT, NONE); > + PIN_SLP(gpc1-3, INPUT, NONE); > + PIN_SLP(gpc1-4, INPUT, NONE); > + > + 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, DOWN); > + PIN_SLP(gpd1-1, INPUT, DOWN); > + PIN_SLP(gpd1-2, INPUT, NONE); > + PIN_SLP(gpd1-3, INPUT, NONE); > + > + PIN_SLP(gpf0-0, INPUT, NONE); > + PIN_SLP(gpf0-1, INPUT, NONE); > + PIN_SLP(gpf0-2, INPUT, DOWN); > + PIN_SLP(gpf0-3, INPUT, DOWN); > + PIN_SLP(gpf0-4, INPUT, NONE); > + PIN_SLP(gpf0-5, INPUT, DOWN); > + PIN_SLP(gpf0-6, INPUT, NONE); > + PIN_SLP(gpf0-7, INPUT, DOWN); > + > + PIN_SLP(gpf1-0, INPUT, DOWN); > + PIN_SLP(gpf1-1, INPUT, DOWN); > + PIN_SLP(gpf1-2, INPUT, DOWN); > + PIN_SLP(gpf1-3, INPUT, DOWN); > + PIN_SLP(gpf1-4, INPUT, NONE); > + PIN_SLP(gpf1-5, INPUT, NONE); > + PIN_SLP(gpf1-6, INPUT, DOWN); > + PIN_SLP(gpf1-7, PREV, NONE); > + > + PIN_SLP(gpf2-0, PREV, NONE); > + PIN_SLP(gpf2-1, INPUT, DOWN); > + PIN_SLP(gpf2-2, INPUT, DOWN); > + PIN_SLP(gpf2-3, INPUT, DOWN); > + PIN_SLP(gpf2-4, INPUT, DOWN); > + PIN_SLP(gpf2-5, INPUT, DOWN); > + PIN_SLP(gpf2-6, INPUT, NONE); > + PIN_SLP(gpf2-7, INPUT, NONE); > + > + PIN_SLP(gpf3-0, INPUT, NONE); > + PIN_SLP(gpf3-1, PREV, NONE); > + PIN_SLP(gpf3-2, PREV, NONE); > + PIN_SLP(gpf3-3, PREV, NONE); > + PIN_SLP(gpf3-4, OUT1, NONE); > + PIN_SLP(gpf3-5, INPUT, DOWN); > + > + PIN_SLP(gpj0-0, PREV, NONE); > + PIN_SLP(gpj0-1, PREV, NONE); > + PIN_SLP(gpj0-2, PREV, NONE); > + PIN_SLP(gpj0-3, INPUT, DOWN); > + PIN_SLP(gpj0-4, PREV, NONE); > + PIN_SLP(gpj0-5, PREV, NONE); > + PIN_SLP(gpj0-6, INPUT, DOWN); > + PIN_SLP(gpj0-7, INPUT, DOWN); > + > + PIN_SLP(gpj1-0, INPUT, DOWN); > + PIN_SLP(gpj1-1, PREV, NONE); > + PIN_SLP(gpj1-2, PREV, NONE); > + PIN_SLP(gpj1-3, INPUT, DOWN); > + PIN_SLP(gpj1-4, INPUT, DOWN); > + }; > +}; > + > +&pinctrl_1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&sleep1>; > + > + hdmi_hpd: hdmi-hpd { > + samsung,pins = "gpx3-7"; > + samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; > + }; > + > + sleep1: sleep-states { > + PIN_SLP(gpk0-0, PREV, NONE); > + PIN_SLP(gpk0-1, PREV, NONE); > + PIN_SLP(gpk0-2, OUT0, NONE); > + PIN_SLP(gpk0-3, PREV, NONE); > + PIN_SLP(gpk0-4, PREV, NONE); > + PIN_SLP(gpk0-5, PREV, NONE); > + PIN_SLP(gpk0-6, PREV, NONE); > + > + PIN_SLP(gpk1-0, INPUT, DOWN); > + PIN_SLP(gpk1-1, INPUT, DOWN); > + 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(gpk3-0, OUT0, NONE); > + PIN_SLP(gpk3-1, INPUT, NONE); > + PIN_SLP(gpk3-2, INPUT, DOWN); > + PIN_SLP(gpk3-3, INPUT, NONE); > + PIN_SLP(gpk3-4, INPUT, NONE); > + PIN_SLP(gpk3-5, INPUT, NONE); > + PIN_SLP(gpk3-6, INPUT, NONE); > + > + 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(gpl0-4, PREV, NONE); > + PIN_SLP(gpl0-6, PREV, NONE); > + > + PIN_SLP(gpl1-0, INPUT, DOWN); > + PIN_SLP(gpl1-1, INPUT, DOWN); > + PIN_SLP(gpl2-0, INPUT, DOWN); > + PIN_SLP(gpl2-1, INPUT, DOWN); > + PIN_SLP(gpl2-2, INPUT, DOWN); > + PIN_SLP(gpl2-3, INPUT, DOWN); > + PIN_SLP(gpl2-4, INPUT, DOWN); > + PIN_SLP(gpl2-5, INPUT, DOWN); > + PIN_SLP(gpl2-6, PREV, NONE); > + PIN_SLP(gpl2-7, 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, NONE); > + PIN_SLP(gpm1-3, INPUT, NONE); > + PIN_SLP(gpm1-4, INPUT, NONE); > + PIN_SLP(gpm1-5, INPUT, NONE); > + PIN_SLP(gpm1-6, INPUT, DOWN); > + > + PIN_SLP(gpm2-0, INPUT, NONE); > + PIN_SLP(gpm2-1, INPUT, NONE); > + PIN_SLP(gpm2-2, INPUT, DOWN); > + PIN_SLP(gpm2-3, INPUT, DOWN); > + PIN_SLP(gpm2-4, INPUT, DOWN); > + > + PIN_SLP(gpm3-0, PREV, NONE); > + PIN_SLP(gpm3-1, PREV, NONE); > + PIN_SLP(gpm3-2, PREV, NONE); > + PIN_SLP(gpm3-3, OUT1, NONE); > + 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); > + > + PIN_SLP(gpy0-0, INPUT, DOWN); > + PIN_SLP(gpy0-1, INPUT, DOWN); > + PIN_SLP(gpy0-2, INPUT, DOWN); > + PIN_SLP(gpy0-3, INPUT, DOWN); > + PIN_SLP(gpy0-4, INPUT, DOWN); > + PIN_SLP(gpy0-5, INPUT, DOWN); > + > + PIN_SLP(gpy1-0, INPUT, DOWN); > + PIN_SLP(gpy1-1, INPUT, DOWN); > + PIN_SLP(gpy1-2, INPUT, DOWN); > + PIN_SLP(gpy1-3, INPUT, DOWN); > + > + PIN_SLP(gpy2-0, PREV, NONE); > + PIN_SLP(gpy2-1, INPUT, DOWN); > + PIN_SLP(gpy2-2, INPUT, NONE); > + PIN_SLP(gpy2-3, INPUT, NONE); > + PIN_SLP(gpy2-4, INPUT, NONE); > + PIN_SLP(gpy2-5, INPUT, NONE); > + > + PIN_SLP(gpy3-0, INPUT, DOWN); > + PIN_SLP(gpy3-1, INPUT, DOWN); > + PIN_SLP(gpy3-2, INPUT, DOWN); > + PIN_SLP(gpy3-3, INPUT, DOWN); > + PIN_SLP(gpy3-4, INPUT, DOWN); > + PIN_SLP(gpy3-5, INPUT, DOWN); > + PIN_SLP(gpy3-6, INPUT, DOWN); > + PIN_SLP(gpy3-7, INPUT, DOWN); > + > + PIN_SLP(gpy4-0, INPUT, DOWN); > + PIN_SLP(gpy4-1, INPUT, DOWN); > + PIN_SLP(gpy4-2, INPUT, DOWN); > + PIN_SLP(gpy4-3, INPUT, DOWN); > + PIN_SLP(gpy4-4, INPUT, DOWN); > + PIN_SLP(gpy4-5, INPUT, DOWN); > + PIN_SLP(gpy4-6, INPUT, DOWN); > + PIN_SLP(gpy4-7, INPUT, DOWN); > + > + PIN_SLP(gpy5-0, INPUT, DOWN); > + PIN_SLP(gpy5-1, INPUT, DOWN); > + PIN_SLP(gpy5-2, INPUT, DOWN); > + PIN_SLP(gpy5-3, INPUT, DOWN); > + PIN_SLP(gpy5-4, INPUT, DOWN); > + PIN_SLP(gpy5-5, INPUT, DOWN); > + PIN_SLP(gpy5-6, INPUT, DOWN); > + PIN_SLP(gpy5-7, INPUT, DOWN); > + > + PIN_SLP(gpy6-0, INPUT, DOWN); > + PIN_SLP(gpy6-1, INPUT, DOWN); > + PIN_SLP(gpy6-2, INPUT, DOWN); > + PIN_SLP(gpy6-3, INPUT, DOWN); > + PIN_SLP(gpy6-4, INPUT, DOWN); > + PIN_SLP(gpy6-5, INPUT, DOWN); > + PIN_SLP(gpy6-6, INPUT, DOWN); > + PIN_SLP(gpy6-7, INPUT, DOWN); > + }; > +}; > + > +&pinctrl_2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&sleep2>; > + > + sleep2: sleep-states { > + PIN_SLP(gpz-0, INPUT, DOWN); > + PIN_SLP(gpz-1, INPUT, DOWN); > + PIN_SLP(gpz-2, INPUT, DOWN); > + PIN_SLP(gpz-3, INPUT, DOWN); > + PIN_SLP(gpz-4, INPUT, DOWN); > + PIN_SLP(gpz-5, INPUT, DOWN); > + PIN_SLP(gpz-6, INPUT, DOWN); > + }; > +}; > + > +&pinctrl_3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&sleep3>; > + > + sleep3: sleep-states { > + PIN_SLP(gpv0-0, INPUT, DOWN); > + PIN_SLP(gpv0-1, INPUT, DOWN); > + PIN_SLP(gpv0-2, INPUT, DOWN); > + PIN_SLP(gpv0-3, INPUT, DOWN); > + PIN_SLP(gpv0-4, INPUT, DOWN); > + PIN_SLP(gpv0-5, INPUT, DOWN); > + PIN_SLP(gpv0-6, INPUT, DOWN); > + PIN_SLP(gpv0-7, INPUT, DOWN); > + > + PIN_SLP(gpv1-0, INPUT, DOWN); > + PIN_SLP(gpv1-1, INPUT, DOWN); > + PIN_SLP(gpv1-2, INPUT, DOWN); > + PIN_SLP(gpv1-3, INPUT, DOWN); > + PIN_SLP(gpv1-4, INPUT, DOWN); > + PIN_SLP(gpv1-5, INPUT, DOWN); > + PIN_SLP(gpv1-6, INPUT, DOWN); > + PIN_SLP(gpv1-7, INPUT, DOWN); > + > + PIN_SLP(gpv2-0, INPUT, DOWN); > + PIN_SLP(gpv2-1, INPUT, DOWN); > + PIN_SLP(gpv2-2, INPUT, DOWN); > + PIN_SLP(gpv2-3, INPUT, DOWN); > + PIN_SLP(gpv2-4, INPUT, DOWN); > + PIN_SLP(gpv2-5, INPUT, DOWN); > + PIN_SLP(gpv2-6, INPUT, DOWN); > + PIN_SLP(gpv2-7, INPUT, DOWN); > + > + PIN_SLP(gpv3-0, INPUT, DOWN); > + PIN_SLP(gpv3-1, INPUT, DOWN); > + PIN_SLP(gpv3-2, INPUT, DOWN); > + PIN_SLP(gpv3-3, INPUT, DOWN); > + PIN_SLP(gpv3-4, INPUT, DOWN); > + PIN_SLP(gpv3-5, INPUT, DOWN); > + PIN_SLP(gpv3-6, INPUT, DOWN); > + PIN_SLP(gpv3-7, INPUT, DOWN); > + > + PIN_SLP(gpv4-0, INPUT, DOWN); > + }; > +}; > + > +&pwm { > + pinctrl-0 = <&pwm0_out>; > + pinctrl-names = "default"; > + samsung,pwm-outputs = <0>; > + status = "okay"; > +}; > + > +&rtc { > + status = "okay"; > + clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>; > + clock-names = "rtc", "rtc_src"; > +}; > + > +&sdhci_2 { > + bus-width = <4>; > + cd-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>; > + cd-inverted; > + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; > + pinctrl-names = "default"; > + vmmc-supply = <&ldo21_reg>; > + status = "okay"; > +}; > + > +&sdhci_3 { > + #address-cells = <1>; > + #size-cells = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>; > + > + broken-cd; > + > + mmc-pwrseq = <&wlan_pwrseq>; > + > + bus-width = <4>; > + status = "okay"; > + > + brcmf: wifi@1 { > + reg = <1>; > + compatible = "brcm,bcm4329-fmac"; > + interrupt-parent = <&gpx2>; > + interrupts = <5 IRQ_TYPE_NONE>; > + interrupt-names = "host-wake"; > + }; > +}; > + > +&serial_0 { > + status = "okay"; > +}; > + > +&serial_1 { > + status = "okay"; > +}; > + > +&serial_2 { > + status = "okay"; > +}; > + > +&serial_3 { > + status = "okay"; > +}; > + > +&sleep0 { > + gpf1-0 { > + samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; > + samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; > + }; > +}; > + > +&spi_1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&spi1_bus>; > + cs-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>; > + status = "okay"; > + > + s5c73m3_spi: s5c73m3@0 { > + compatible = "samsung,s5c73m3"; > + spi-max-frequency = <50000000>; > + reg = <0>; > + controller-data { > + samsung,spi-feedback-delay = <2>; > + }; > + }; > +}; > + > +&tmu { > + vtmu-supply = <&ldo10_reg>; > + status = "okay"; > +}; > + > +&pmu_system_controller { > + compatible = "samsung,exynos4210-pmu", "syscon", "simple-mfd"; > + > + reboot-mode { > + compatible = "syscon-reboot-mode"; > + offset = <0x80c>; > + > + mode-normal = <0x12345670>; > + mode-bootloader = <0x12345671>; > + mode-download = <0x12345671>; > + mode-recovery = <0x12345674>; > + }; > +}; > diff --git a/arch/arm/boot/dts/exynos4412-t0.dts b/arch/arm/boot/dts/exynos4412-t0.dts > new file mode 100644 > index 000000000000..c49abe857b6f > --- /dev/null > +++ b/arch/arm/boot/dts/exynos4412-t0.dts > @@ -0,0 +1,51 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/dts-v1/; > +#include "exynos4412-midas.dtsi" > + > +/ { > + compatible = "samsung,t0", "samsung,midas", "samsung,exynos4412", "samsung,exynos4"; > + model = "Samsung T0 (GT-N7100, GT-N7105) based on Exynos4412"; > + > + memory@40000000 { > + device_type = "memory"; > + reg = <0x40000000 0x80000000>; > + }; > + Unnecessary blank line. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <CAJKOXPfkQvo09r6WpZG-E+EgUk+p32dVycxWi6L07kHzv1EsWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH 2/3] ARM: dts: add Samsung's exynos4412-based midas boards [not found] ` <CAJKOXPfkQvo09r6WpZG-E+EgUk+p32dVycxWi6L07kHzv1EsWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-12-14 9:04 ` Marek Szyprowski 0 siblings, 0 replies; 6+ messages in thread From: Marek Szyprowski @ 2017-12-14 9:04 UTC (permalink / raw) To: Krzysztof Kozlowski, Simon Shields Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Kukjin Kim, devicetree-u79uwXL29TY76Z2rM5mHXA, Bartłomiej Żołnierkiewicz Hi Krzysztof, On 2017-12-14 09:48, Krzysztof Kozlowski wrote: > Hi Simon, > > Thanks for new boards! > > +Cc Marek, Bartlomiej, > > On Tue, Dec 12, 2017 at 3:08 PM, Simon Shields <simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> wrote: >> "midas" is the codename for a family of smartphones released by Samsung >> Mobile. It includes the Galaxy S3 (GT-I9300/I9305) and the Galaxy >> Note 2 (GT-N7100/N7105). The boards largely have the same peripherals: >> the main differences are touchscreen, display panel and cellular modem. >> >> Signed-off-by: Simon Shields <simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> >> --- >> arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 144 +++ >> arch/arm/boot/dts/exynos4412-m0.dts | 14 + >> arch/arm/boot/dts/exynos4412-m3.dts | 19 + >> arch/arm/boot/dts/exynos4412-midas.dtsi | 1291 +++++++++++++++++++++++++++ > M0 is essentially Trats2. You are duplicating here almost entire > Trats2 which means: > 1. A lot of duplicated code thus it will require more maintenance to > keep DTS synced, > 2. It is very difficult to spot the changes and possible errors > between Trats2 and Midas DTSI/M0. > > Please make a generic family of devices based on Midas, including > Trats2. You might make it in steps for easier review: > 1. Split common Trats2 part, > 2. Add new boards. Krzysztof is right. Trats2 should also be based on midas.dtsi (it is very similar to gt-i9300, the difference in mainly in the casing). We also used gt-i9300 with modified bootloader with Trats2 dts. It should not be hard to adapt it for common midas.dtsi base (hind: use scripts/dtc/dtx_diff for checking if the final dts is correct). > ... Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/3] ARM: exynos: extend cpuidle support to midas boards [not found] ` <20171212140815.28257-1-simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> 2017-12-12 14:08 ` [PATCH 2/3] ARM: dts: add Samsung's exynos4412-based midas boards Simon Shields @ 2017-12-12 14:08 ` Simon Shields 1 sibling, 0 replies; 6+ messages in thread From: Simon Shields @ 2017-12-12 14:08 UTC (permalink / raw) To: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA Cc: Kukjin Kim, Krzysztof Kozlowski, devicetree-u79uwXL29TY76Z2rM5mHXA, Simon Shields Exynos4412 can only use cpuidle when running under a compatible bootloader/firmware. The midas family of boards has such a firmware, so allow them to use cpuidle. Signed-off-by: Simon Shields <simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> --- arch/arm/mach-exynos/exynos.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c index 9a9caac1125a..4ee60e31ea48 100644 --- a/arch/arm/mach-exynos/exynos.c +++ b/arch/arm/mach-exynos/exynos.c @@ -196,7 +196,8 @@ static void __init exynos_dt_machine_init(void) #endif if (of_machine_is_compatible("samsung,exynos4210") || (of_machine_is_compatible("samsung,exynos4412") && - of_machine_is_compatible("samsung,trats2")) || + (of_machine_is_compatible("samsung,trats2") || + of_machine_is_compatible("samsung,midas"))) || of_machine_is_compatible("samsung,exynos3250") || of_machine_is_compatible("samsung,exynos5250")) platform_device_register(&exynos_cpuidle); -- 2.15.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-12-14 9:04 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-12-12 14:08 [PATCH 0/3] Add Exynos4412-based midas boards support Simon Shields 2017-12-12 14:08 ` [PATCH 1/3] dt-bindings: samsung: document bindings for Midas family boards Simon Shields [not found] ` <20171212140815.28257-1-simon-WP75azK+jQYgsBAKwltoeQ@public.gmane.org> 2017-12-12 14:08 ` [PATCH 2/3] ARM: dts: add Samsung's exynos4412-based midas boards Simon Shields 2017-12-14 8:48 ` Krzysztof Kozlowski [not found] ` <CAJKOXPfkQvo09r6WpZG-E+EgUk+p32dVycxWi6L07kHzv1EsWQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-12-14 9:04 ` Marek Szyprowski 2017-12-12 14:08 ` [PATCH 3/3] ARM: exynos: extend cpuidle support to " Simon Shields
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).