0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Samsung's S5PV210 SoC device tree source
0004 *
0005 * Copyright (c) 2013-2014 Samsung Electronics, Co. Ltd.
0006 *
0007 * Mateusz Krawczuk <m.krawczuk@partner.samsung.com>
0008 * Tomasz Figa <t.figa@samsung.com>
0009 *
0010 * Board device tree source for Samsung Goni board.
0011 */
0012
0013 /dts-v1/;
0014 #include <dt-bindings/gpio/gpio.h>
0015 #include <dt-bindings/interrupt-controller/irq.h>
0016 #include <dt-bindings/input/input.h>
0017 #include "s5pv210.dtsi"
0018
0019 / {
0020 model = "Samsung Goni based on S5PC110";
0021 compatible = "samsung,goni", "samsung,s5pv210";
0022
0023 aliases {
0024 i2c3 = &i2c_pmic;
0025 };
0026
0027 chosen {
0028 bootargs = "console=ttySAC0,115200n8 root=/dev/mmcblk0p5 rw rootwait ignore_loglevel earlyprintk";
0029 };
0030
0031 memory@30000000 {
0032 device_type = "memory";
0033 reg = <0x30000000 0x05000000>,
0034 <0x40000000 0x10000000>,
0035 <0x50000000 0x08000000>;
0036 };
0037
0038 pmic_ap_clk: clock-0 {
0039 /* Workaround for missing clock on PMIC */
0040 compatible = "fixed-clock";
0041 #clock-cells = <0>;
0042 clock-frequency = <32768>;
0043 };
0044
0045 vtf_reg: regulator-0 {
0046 compatible = "regulator-fixed";
0047 regulator-name = "V_TF_2.8V";
0048 regulator-min-microvolt = <2800000>;
0049 regulator-max-microvolt = <2800000>;
0050 gpio = <&mp05 4 GPIO_ACTIVE_HIGH>;
0051 enable-active-high;
0052 };
0053
0054 pda_reg: regulator-1 {
0055 compatible = "regulator-fixed";
0056 regulator-name = "VCC_1.8V_PDA";
0057 regulator-min-microvolt = <1800000>;
0058 regulator-max-microvolt = <1800000>;
0059 };
0060
0061 bat_reg: regulator-2 {
0062 compatible = "regulator-fixed";
0063 regulator-name = "V_BAT";
0064 regulator-min-microvolt = <3700000>;
0065 regulator-max-microvolt = <3700000>;
0066 };
0067
0068 tsp_reg: regulator-3 {
0069 compatible = "regulator-fixed";
0070 regulator-name = "TSP_VDD";
0071 regulator-min-microvolt = <2800000>;
0072 regulator-max-microvolt = <2800000>;
0073 gpio = <&gpj1 3 GPIO_ACTIVE_HIGH>;
0074 enable-active-high;
0075 };
0076
0077 i2c_pmic: i2c-pmic {
0078 compatible = "i2c-gpio";
0079 sda-gpios = <&gpj4 0 GPIO_ACTIVE_HIGH>;
0080 scl-gpios = <&gpj4 3 GPIO_ACTIVE_HIGH>;
0081 i2c-gpio,delay-us = <2>; /* ~100 kHz */
0082 #address-cells = <1>;
0083 #size-cells = <0>;
0084
0085 pmic@66 {
0086 compatible = "national,lp3974";
0087 reg = <0x66>;
0088
0089 max8998,pmic-buck1-default-dvs-idx = <0>;
0090 max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
0091 <&gph0 4 GPIO_ACTIVE_HIGH>;
0092 max8998,pmic-buck1-dvs-voltage = <1200000>, <1200000>,
0093 <1200000>, <1200000>;
0094
0095 max8998,pmic-buck2-default-dvs-idx = <0>;
0096 max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
0097 max8998,pmic-buck2-dvs-voltage = <1200000>, <1200000>;
0098
0099 regulators {
0100 ldo2_reg: LDO2 {
0101 regulator-name = "VALIVE_1.1V";
0102 regulator-min-microvolt = <1100000>;
0103 regulator-max-microvolt = <1100000>;
0104 regulator-always-on;
0105 };
0106
0107 ldo3_reg: LDO3 {
0108 regulator-name = "VUSB+MIPI_1.1V";
0109 regulator-min-microvolt = <1100000>;
0110 regulator-max-microvolt = <1100000>;
0111 regulator-always-on;
0112 };
0113
0114 ldo4_reg: LDO4 {
0115 regulator-name = "VADC_3.3V";
0116 regulator-min-microvolt = <3300000>;
0117 regulator-max-microvolt = <3300000>;
0118 };
0119
0120 ldo5_reg: LDO5 {
0121 regulator-name = "VTF_2.8V";
0122 regulator-min-microvolt = <2800000>;
0123 regulator-max-microvolt = <2800000>;
0124 };
0125
0126 ldo6_reg: LDO6 {
0127 regulator-name = "VCC_3.3V";
0128 regulator-min-microvolt = <3300000>;
0129 regulator-max-microvolt = <3300000>;
0130 };
0131
0132 ldo7_reg: LDO7 {
0133 regulator-name = "VLCD_1.8V";
0134 regulator-min-microvolt = <1800000>;
0135 regulator-max-microvolt = <1800000>;
0136 regulator-always-on;
0137 };
0138
0139 ldo8_reg: LDO8 {
0140 regulator-name = "VUSB+VDAC_3.3V";
0141 regulator-min-microvolt = <3300000>;
0142 regulator-max-microvolt = <3300000>;
0143 };
0144
0145 ldo9_reg: LDO9 {
0146 regulator-name = "VCC+VCAM_2.8V";
0147 regulator-min-microvolt = <2800000>;
0148 regulator-max-microvolt = <2800000>;
0149 };
0150
0151 ldo10_reg: LDO10 {
0152 regulator-name = "VPLL_1.1V";
0153 regulator-min-microvolt = <1100000>;
0154 regulator-max-microvolt = <1100000>;
0155 regulator-boot-on;
0156 };
0157
0158 ldo11_reg: LDO11 {
0159 regulator-name = "CAM_IO_2.8V";
0160 regulator-min-microvolt = <2800000>;
0161 regulator-max-microvolt = <2800000>;
0162 };
0163
0164 ldo12_reg: LDO12 {
0165 regulator-name = "CAM_ISP_1.2V";
0166 regulator-min-microvolt = <1200000>;
0167 regulator-max-microvolt = <1200000>;
0168 };
0169
0170 ldo13_reg: LDO13 {
0171 regulator-name = "CAM_A_2.8V";
0172 regulator-min-microvolt = <2800000>;
0173 regulator-max-microvolt = <2800000>;
0174 };
0175
0176 ldo14_reg: LDO14 {
0177 regulator-name = "CAM_CIF_1.8V";
0178 regulator-min-microvolt = <1800000>;
0179 regulator-max-microvolt = <1800000>;
0180 };
0181
0182 ldo15_reg: LDO15 {
0183 regulator-name = "CAM_AF_3.3V";
0184 regulator-min-microvolt = <3300000>;
0185 regulator-max-microvolt = <3300000>;
0186 };
0187
0188 ldo16_reg: LDO16 {
0189 regulator-name = "VMIPI_1.8V";
0190 regulator-min-microvolt = <1800000>;
0191 regulator-max-microvolt = <1800000>;
0192 };
0193
0194 ldo17_reg: LDO17 {
0195 regulator-name = "CAM_8M_1.8V";
0196 regulator-min-microvolt = <1800000>;
0197 regulator-max-microvolt = <1800000>;
0198 regulator-always-on;
0199 };
0200
0201 buck1_reg: BUCK1 {
0202 regulator-name = "VARM_1.2V";
0203 regulator-min-microvolt = <1200000>;
0204 regulator-max-microvolt = <1200000>;
0205 };
0206
0207 buck2_reg: BUCK2 {
0208 regulator-name = "VINT_1.2V";
0209 regulator-min-microvolt = <1200000>;
0210 regulator-max-microvolt = <1200000>;
0211 };
0212
0213 buck3_reg: BUCK3 {
0214 regulator-name = "VCC_1.8V";
0215 regulator-min-microvolt = <1800000>;
0216 regulator-max-microvolt = <1800000>;
0217 regulator-always-on;
0218 };
0219
0220 buck4_reg: BUCK4 {
0221 regulator-name = "CAM_CORE_1.2V";
0222 regulator-min-microvolt = <1200000>;
0223 regulator-max-microvolt = <1200000>;
0224 regulator-always-on;
0225 };
0226
0227 ap32khz_reg: EN32KHz-AP {
0228 regulator-name = "32KHz AP";
0229 regulator-always-on;
0230 };
0231 };
0232 };
0233 };
0234
0235 gpio-keys {
0236 compatible = "gpio-keys";
0237
0238 power-key {
0239 gpios = <&gph2 6 1>;
0240 linux,code = <KEY_POWER>;
0241 label = "power";
0242 debounce-interval = <1>;
0243 wakeup-source;
0244 };
0245 };
0246 };
0247
0248 &xusbxti {
0249 clock-frequency = <24000000>;
0250 };
0251
0252 &keypad {
0253 linux,input-no-autorepeat;
0254 wakeup-source;
0255 samsung,keypad-num-rows = <3>;
0256 samsung,keypad-num-columns = <3>;
0257 pinctrl-names = "default";
0258 pinctrl-0 = <&keypad_row0>, <&keypad_row1>, <&keypad_row2>,
0259 <&keypad_col0>, <&keypad_col1>, <&keypad_col2>;
0260 status = "okay";
0261
0262 key-1 {
0263 keypad,row = <0>;
0264 keypad,column = <1>;
0265 linux,code = <KEY_CONNECT>;
0266 };
0267
0268 key-2 {
0269 keypad,row = <0>;
0270 keypad,column = <2>;
0271 linux,code = <KEY_BACK>;
0272 };
0273
0274 key-3 {
0275 keypad,row = <1>;
0276 keypad,column = <1>;
0277 linux,code = <KEY_CAMERA_FOCUS>;
0278 };
0279
0280 key-4 {
0281 keypad,row = <1>;
0282 keypad,column = <2>;
0283 linux,code = <KEY_VOLUMEUP>;
0284 };
0285
0286 key-5 {
0287 keypad,row = <2>;
0288 keypad,column = <1>;
0289 linux,code = <KEY_CAMERA>;
0290 };
0291
0292 key-6 {
0293 keypad,row = <2>;
0294 keypad,column = <2>;
0295 linux,code = <KEY_VOLUMEDOWN>;
0296 };
0297 };
0298
0299 &uart0 {
0300 status = "okay";
0301 };
0302
0303 &uart1 {
0304 status = "okay";
0305 };
0306
0307 &uart2 {
0308 status = "okay";
0309 };
0310
0311 &uart3 {
0312 status = "okay";
0313 };
0314
0315 &rtc {
0316 clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
0317 clock-names = "rtc", "rtc_src";
0318 };
0319
0320 &sdhci0 {
0321 bus-width = <4>;
0322 non-removable;
0323 vmmc-supply = <&ldo5_reg>;
0324 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus1 &sd0_bus4>;
0325 pinctrl-names = "default";
0326 status = "okay";
0327 };
0328
0329 &sdhci2 {
0330 bus-width = <4>;
0331 cd-gpios = <&gph3 4 1>;
0332 vmmc-supply = <&vtf_reg>;
0333 cd-inverted;
0334 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
0335 pinctrl-names = "default";
0336 status = "okay";
0337 };
0338
0339 &hsotg {
0340 vusb_a-supply = <&ldo3_reg>;
0341 vusb_d-supply = <&ldo8_reg>;
0342 dr_mode = "peripheral";
0343 status = "okay";
0344 };
0345
0346 &usbphy {
0347 status = "okay";
0348 };
0349
0350 &i2c2 {
0351 samsung,i2c-sda-delay = <100>;
0352 samsung,i2c-max-bus-freq = <400000>;
0353 samsung,i2c-slave-addr = <0x10>;
0354 status = "okay";
0355
0356 touchscreen@4a {
0357 compatible = "atmel,maxtouch";
0358 reg = <0x4a>;
0359 interrupt-parent = <&gpj0>;
0360 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
0361 vdd-supply = <&tsp_reg>;
0362 };
0363 };
0364
0365 &i2c0 {
0366 samsung,i2c-sda-delay = <100>;
0367 samsung,i2c-max-bus-freq = <100000>;
0368 samsung,i2c-slave-addr = <0x10>;
0369 status = "okay";
0370
0371 noon010pc30: sensor@30 {
0372 compatible = "siliconfile,noon010pc30";
0373 reg = <0x30>;
0374 vddio-supply = <&ldo11_reg>;
0375 vdda-supply = <&ldo13_reg>;
0376 vdd_core-supply = <&ldo14_reg>;
0377
0378 clock-frequency = <16000000>;
0379 clocks = <&camera 0>;
0380 clock-names = "mclk";
0381 nreset-gpios = <&gpb 2 GPIO_ACTIVE_HIGH>;
0382 nstby-gpios = <&gpb 0 GPIO_ACTIVE_HIGH>;
0383
0384 port {
0385 noon010pc30_ep: endpoint {
0386 remote-endpoint = <&fimc0_ep>;
0387 bus-width = <8>;
0388 hsync-active = <0>;
0389 vsync-active = <1>;
0390 pclk-sample = <1>;
0391 };
0392 };
0393 };
0394 };
0395
0396 &camera {
0397 pinctrl-0 = <&cam_port_a_io &cam_port_a_clk_active>;
0398 pinctrl-1 = <&cam_port_a_io &cam_port_a_clk_idle>;
0399 pinctrl-names = "default", "idle";
0400
0401 parallel-ports {
0402 #address-cells = <1>;
0403 #size-cells = <0>;
0404
0405 /* camera A input */
0406 port@1 {
0407 reg = <1>;
0408 fimc0_ep: endpoint {
0409 remote-endpoint = <&noon010pc30_ep>;
0410 bus-width = <8>;
0411 hsync-active = <1>;
0412 vsync-active = <1>;
0413 pclk-sample = <0>;
0414 };
0415 };
0416 };
0417 };
0418
0419 &fimd {
0420 pinctrl-0 = <&lcd_clk &lcd_data24>;
0421 pinctrl-names = "default";
0422 status = "okay";
0423
0424 display-timings {
0425 native-mode = <&timing0>;
0426 timing0: timing {
0427 /* 480x800@55Hz */
0428 clock-frequency = <23439570>;
0429 hactive = <480>;
0430 hfront-porch = <16>;
0431 hback-porch = <16>;
0432 hsync-len = <2>;
0433 vactive = <800>;
0434 vback-porch = <2>;
0435 vfront-porch = <28>;
0436 vsync-len = <1>;
0437 hsync-active = <0>;
0438 vsync-active = <0>;
0439 de-active = <0>;
0440 pixelclk-active = <0>;
0441 };
0442 };
0443 };
0444
0445 &onenand {
0446 status = "okay";
0447 };