1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * SAMSUNG/GOOGLE Peach-Pit board device tree source 4 * 5 * Copyright (c) 2013 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com 7 */ 8 9/dts-v1/; 10#include "exynos54xx.dtsi" 11#include <dt-bindings/clock/maxim,max77802.h> 12#include <dt-bindings/regulator/maxim,max77802.h> 13 14/ { 15 model = "Samsung/Google Peach Pit board based on Exynos5420"; 16 17 compatible = "google,pit-rev#", "google,pit", 18 "google,peach", "samsung,exynos5420", "samsung,exynos5"; 19 20 config { 21 google,bad-wake-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>; 22 hwid = "PIT TEST A-A 7848"; 23 lazy-init = <1>; 24 }; 25 26 aliases { 27 serial0 = "/serial@12C30000"; 28 console = "/serial@12C30000"; 29 pmic = "/i2c@12CA0000"; 30 i2c104 = &i2c_tunnel; 31 }; 32 33 backlight: backlight { 34 compatible = "pwm-backlight"; 35 pwms = <&pwm 0 1000000 0>; 36 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; 37 default-brightness-level = <7>; 38 power-supply = <&tps65090_fet1>; 39 }; 40 41 dmc { 42 mem-manuf = "samsung"; 43 mem-type = "ddr3"; 44 clock-frequency = <800000000>; 45 arm-frequency = <900000000>; 46 }; 47 48 tmu@10060000 { 49 samsung,min-temp = <25>; 50 samsung,max-temp = <125>; 51 samsung,start-warning = <95>; 52 samsung,start-tripping = <105>; 53 samsung,hw-tripping = <110>; 54 samsung,efuse-min-value = <40>; 55 samsung,efuse-value = <55>; 56 samsung,efuse-max-value = <100>; 57 samsung,slope = <274761730>; 58 samsung,dc-value = <25>; 59 }; 60 61 /* MAX77802 is on i2c bus 4 */ 62 i2c@12CA0000 { 63 clock-frequency = <400000>; 64 power-regulator@9 { 65 compatible = "maxim,max77802-pmic"; 66 reg = <0x9>; 67 }; 68 }; 69 70 sound { 71 compatible = "google,peach-audio-max98090"; 72 73 samsung,model = "PEACH-I2S-MAX98090"; 74 samsung,audio-codec = <&max98090>; 75 76 cpu { 77 sound-dai = <&i2s0 0>; 78 }; 79 80 codec { 81 sound-dai = <&max98090 0>; 82 }; 83 }; 84 85 i2c@12CD0000 { /* i2c7 */ 86 clock-frequency = <100000>; 87 max98090: soundcodec@10 { 88 reg = <0x10>; 89 compatible = "maxim,max98090"; 90 #sound-dai-cells = <1>; 91 }; 92 93 edp-lvds-bridge@48 { 94 compatible = "parade,ps8625"; 95 reg = <0x48>; 96 sleep-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>; 97 reset-gpios = <&gpy7 7 GPIO_ACTIVE_LOW>; 98 parade,regs = /bits/ 8 < 99 0x02 0xa1 0x01 /* HPD low */ 100 /* 101 * SW setting 102 * [1:0] SW output 1.2V voltage is lower to 96% 103 */ 104 0x04 0x14 0x01 105 /* 106 * RCO SS setting 107 * [5:4] = b01 0.5%, b10 1%, b11 1.5% 108 */ 109 0x04 0xe3 0x20 110 0x04 0xe2 0x80 /* [7] RCO SS enable */ 111 /* 112 * RPHY Setting 113 * [3:2] CDR tune wait cycle before 114 * measure for fine tune b00: 1us, 115 * 01: 0.5us, 10:2us, 11:4us. 116 */ 117 0x04 0x8a 0x0c 118 0x04 0x89 0x08 /* [3] RFD always on */ 119 /* 120 * CTN lock in/out: 121 * 20000ppm/80000ppm. Lock out 2 122 * times. 123 */ 124 0x04 0x71 0x2d 125 /* 126 * 2.7G CDR settings 127 * NOF=40LSB for HBR CDR setting 128 */ 129 0x04 0x7d 0x07 130 0x04 0x7b 0x00 /* [1:0] Fmin=+4bands */ 131 0x04 0x7a 0xfd /* [7:5] DCO_FTRNG=+-40% */ 132 /* 133 * 1.62G CDR settings 134 * [5:2]NOF=64LSB [1:0]DCO scale is 2/5 135 */ 136 0x04 0xc0 0x12 137 0x04 0xc1 0x92 /* Gitune=-37% */ 138 0x04 0xc2 0x1c /* Fbstep=100% */ 139 0x04 0x32 0x80 /* [7]LOS signal disable */ 140 /* 141 * RPIO Setting 142 * [7:4] LVDS driver bias current : 143 * 75% (250mV swing) 144 */ 145 0x04 0x00 0xb0 146 /* 147 * [7:6] Right-bar GPIO output strength is 8mA 148 */ 149 0x04 0x15 0x40 150 /* EQ Training State Machine Setting */ 151 0x04 0x54 0x10 /* RCO calibration start */ 152 /* [4:0] MAX_LANE_COUNT set to one lane */ 153 0x01 0x02 0x81 154 /* [4:0] LANE_COUNT_SET set to one lane */ 155 0x01 0x21 0x81 156 0x00 0x52 0x20 157 0x00 0xf1 0x03 /* HPD CP toggle enable */ 158 0x00 0x62 0x41 159 /* Counter number add 1ms counter delay */ 160 0x00 0xf6 0x01 161 /* 162 * [6]PWM function control by 163 * DPCD0040f[7], default is PWM 164 * block always works. 165 */ 166 0x00 0x77 0x06 167 /* 168 * 04h Adjust VTotal tolerance to 169 * fix the 30Hz no display issue 170 */ 171 0x00 0x4c 0x04 172 /* DPCD00400='h00, Parade OUI = 'h001cf8 */ 173 0x01 0xc0 0x00 174 0x01 0xc1 0x1c /* DPCD00401='h1c */ 175 0x01 0xc2 0xf8 /* DPCD00402='hf8 */ 176 /* 177 * DPCD403~408 = ASCII code 178 * D2SLV5='h4432534c5635 179 */ 180 0x01 0xc3 0x44 181 0x01 0xc4 0x32 /* DPCD404 */ 182 0x01 0xc5 0x53 /* DPCD405 */ 183 0x01 0xc6 0x4c /* DPCD406 */ 184 0x01 0xc7 0x56 /* DPCD407 */ 185 0x01 0xc8 0x35 /* DPCD408 */ 186 /* 187 * DPCD40A, Initial Code major revision 188 * '01' 189 */ 190 0x01 0xca 0x01 191 /* DPCD40B Initial Code minor revision '05' */ 192 0x01 0xcb 0x05 193 /* DPCD720 Select internal PWM */ 194 0x01 0xa5 0xa0 195 /* 196 * FFh for 100% PWM of brightness, 0h for 0% 197 * brightness 198 */ 199 0x01 0xa7 0xff 200 /* 201 * Set LVDS output as 6bit-VESA mapping, 202 * single LVDS channel 203 */ 204 0x01 0xcc 0x13 205 /* Enable SSC set by register */ 206 0x02 0xb1 0x20 207 /* 208 * Set SSC enabled and +/-1% central 209 * spreading 210 */ 211 0x04 0x10 0x16 212 /* MPU Clock source: LC => RCO */ 213 0x04 0x59 0x60 214 0x04 0x54 0x14 /* LC -> RCO */ 215 0x02 0xa1 0x91>; /* HPD high */ 216 217 ports { 218 port@0 { 219 bridge_out: endpoint { 220 remote-endpoint = <&panel_in>; 221 }; 222 }; 223 224 port@1 { 225 bridge_in: endpoint { 226 remote-endpoint = <&dp_out>; 227 }; 228 }; 229 }; 230 }; 231 }; 232 233 sound@3830000 { 234 samsung,codec-type = "max98090"; 235 }; 236 237 i2c@12E10000 { /* i2c9 */ 238 clock-frequency = <400000>; 239 tpm@20 { 240 compatible = "infineon,slb9645tt"; 241 reg = <0x20>; 242 }; 243 }; 244 245 panel: panel { 246 compatible = "auo,b116xw03"; 247 power-supply = <&tps65090_fet6>; 248 backlight = <&backlight>; 249 250 port { 251 panel_in: endpoint { 252 remote-endpoint = <&bridge_out>; 253 }; 254 }; 255 }; 256 257 spi@12d30000 { /* spi1 */ 258 spi-max-frequency = <50000000>; 259 firmware_storage_spi: flash@0 { 260 compatible = "spi-flash"; 261 reg = <0>; 262 263 /* 264 * A region for the kernel to store a panic event 265 * which the firmware will add to the log. 266 */ 267 elog-panic-event-offset = <0x01e00000 0x100000>; 268 269 elog-shrink-size = <0x400>; 270 elog-full-threshold = <0xc00>; 271 }; 272 }; 273 274 xhci@12000000 { 275 samsung,vbus-gpio = <&gph0 0 GPIO_ACTIVE_HIGH>; 276 }; 277 278 xhci@12400000 { 279 samsung,vbus-gpio = <&gph0 1 GPIO_ACTIVE_HIGH>; 280 }; 281 282 fimd@14400000 { 283 samsung,vl-freq = <60>; 284 samsung,vl-col = <1366>; 285 samsung,vl-row = <768>; 286 samsung,vl-width = <1366>; 287 samsung,vl-height = <768>; 288 289 samsung,vl-clkp; 290 samsung,vl-dp; 291 samsung,vl-bpix = <4>; 292 293 samsung,vl-hspw = <32>; 294 samsung,vl-hbpd = <40>; 295 samsung,vl-hfpd = <40>; 296 samsung,vl-vspw = <6>; 297 samsung,vl-vbpd = <10>; 298 samsung,vl-vfpd = <12>; 299 samsung,vl-cmd-allow-len = <0xf>; 300 301 samsung,winid = <3>; 302 samsung,interface-mode = <1>; 303 samsung,dp-enabled = <1>; 304 samsung,dual-lcd-enabled = <0>; 305 }; 306}; 307 308&dp { 309 status = "okay"; 310 samsung,color-space = <0>; 311 samsung,dynamic-range = <0>; 312 samsung,ycbcr-coeff = <0>; 313 samsung,color-depth = <1>; 314 samsung,link-rate = <0x06>; 315 samsung,lane-count = <2>; 316 samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>; 317 318 ports { 319 port@0 { 320 dp_out: endpoint { 321 remote-endpoint = <&bridge_in>; 322 }; 323 }; 324 }; 325}; 326 327&spi_2 { 328 spi-max-frequency = <3125000>; 329 spi-deactivate-delay = <200>; 330 status = "okay"; 331 num-cs = <1>; 332 samsung,spi-src-clk = <0>; 333 cs-gpios = <&gpb1 2 0>; 334 335 cros_ec: cros-ec@0 { 336 compatible = "google,cros-ec-spi"; 337 interrupt-parent = <&gpx1>; 338 interrupts = <5 0>; 339 reg = <0>; 340 spi-half-duplex; 341 spi-max-timeout-ms = <1100>; 342 ec-interrupt = <&gpx1 5 GPIO_ACTIVE_LOW>; 343 #address-cells = <1>; 344 #size-cells = <1>; 345 346 /* 347 * This describes the flash memory within the EC. Note 348 * that the STM32L flash erases to 0, not 0xff. 349 */ 350 flash@8000000 { 351 reg = <0x08000000 0x20000>; 352 erase-value = <0>; 353 }; 354 355 controller-data { 356 samsung,spi-feedback-delay = <1>; 357 }; 358 359 i2c_tunnel: i2c-tunnel { 360 compatible = "google,cros-ec-i2c-tunnel"; 361 #address-cells = <1>; 362 #size-cells = <0>; 363 google,remote-bus = <0>; 364 365 battery: sbs-battery@b { 366 compatible = "sbs,sbs-battery"; 367 reg = <0xb>; 368 sbs,poll-retry-count = <1>; 369 sbs,i2c-retry-count = <2>; 370 }; 371 372 power-regulator@48 { 373 compatible = "ti,tps65090"; 374 reg = <0x48>; 375 376 regulators { 377 tps65090_dcdc1: dcdc1 { 378 ti,enable-ext-control; 379 }; 380 tps65090_dcdc2: dcdc2 { 381 ti,enable-ext-control; 382 }; 383 tps65090_dcdc3: dcdc3 { 384 ti,enable-ext-control; 385 }; 386 tps65090_fet1: fet1 { 387 regulator-name = "vcd_led"; 388 }; 389 tps65090_fet2: fet2 { 390 regulator-name = "video_mid"; 391 regulator-always-on; 392 }; 393 tps65090_fet3: fet3 { 394 regulator-name = "wwan_r"; 395 regulator-always-on; 396 }; 397 tps65090_fet4: fet4 { 398 regulator-name = "sdcard"; 399 regulator-always-on; 400 }; 401 tps65090_fet5: fet5 { 402 regulator-name = "camout"; 403 regulator-always-on; 404 }; 405 tps65090_fet6: fet6 { 406 regulator-name = "lcd_vdd"; 407 }; 408 tps65090_fet7: fet7 { 409 regulator-name = "video_mid_1a"; 410 regulator-always-on; 411 }; 412 tps65090_ldo1: ldo1 { 413 }; 414 tps65090_ldo2: ldo2 { 415 }; 416 }; 417 418 charger { 419 compatible = "ti,tps65090-charger"; 420 }; 421 }; 422 }; 423 }; 424}; 425 426#include "cros-ec-keyboard.dtsi" 427