| // SPDX-License-Identifier: GPL-2.0+ |
| /* |
| * SAMSUNG/GOOGLE Peach-Pit board device tree source |
| * |
| * Copyright (c) 2013 Samsung Electronics Co., Ltd. |
| * http://www.samsung.com |
| */ |
| |
| /dts-v1/; |
| #include "exynos54xx.dtsi" |
| #include <dt-bindings/clock/maxim,max77802.h> |
| #include <dt-bindings/regulator/maxim,max77802.h> |
| |
| / { |
| model = "Samsung/Google Peach Pit board based on Exynos5420"; |
| |
| compatible = "google,pit-rev#", "google,pit", |
| "google,peach", "samsung,exynos5420", "samsung,exynos5"; |
| |
| config { |
| google,bad-wake-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>; |
| hwid = "PIT TEST A-A 7848"; |
| lazy-init = <1>; |
| }; |
| |
| aliases { |
| serial0 = "/serial@12C30000"; |
| console = "/serial@12C30000"; |
| pmic = "/i2c@12CA0000"; |
| i2c104 = &i2c_tunnel; |
| }; |
| |
| backlight: backlight { |
| compatible = "pwm-backlight"; |
| pwms = <&pwm 0 1000000 0>; |
| brightness-levels = <0 100 500 1000 1500 2000 2500 2800>; |
| default-brightness-level = <7>; |
| power-supply = <&tps65090_fet1>; |
| }; |
| |
| dmc { |
| mem-manuf = "samsung"; |
| mem-type = "ddr3"; |
| clock-frequency = <800000000>; |
| arm-frequency = <900000000>; |
| }; |
| |
| tmu@10060000 { |
| samsung,min-temp = <25>; |
| samsung,max-temp = <125>; |
| samsung,start-warning = <95>; |
| samsung,start-tripping = <105>; |
| samsung,hw-tripping = <110>; |
| samsung,efuse-min-value = <40>; |
| samsung,efuse-value = <55>; |
| samsung,efuse-max-value = <100>; |
| samsung,slope = <274761730>; |
| samsung,dc-value = <25>; |
| }; |
| |
| /* MAX77802 is on i2c bus 4 */ |
| i2c@12CA0000 { |
| clock-frequency = <400000>; |
| power-regulator@9 { |
| compatible = "maxim,max77802-pmic"; |
| reg = <0x9>; |
| }; |
| }; |
| |
| sound { |
| compatible = "google,peach-audio-max98090"; |
| |
| samsung,model = "PEACH-I2S-MAX98090"; |
| samsung,audio-codec = <&max98090>; |
| |
| cpu { |
| sound-dai = <&i2s0 0>; |
| }; |
| |
| codec { |
| sound-dai = <&max98090 0>; |
| }; |
| }; |
| |
| i2c@12CD0000 { /* i2c7 */ |
| clock-frequency = <100000>; |
| max98090: soundcodec@10 { |
| reg = <0x10>; |
| compatible = "maxim,max98090"; |
| #sound-dai-cells = <1>; |
| }; |
| |
| edp-lvds-bridge@48 { |
| compatible = "parade,ps8625"; |
| reg = <0x48>; |
| sleep-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>; |
| reset-gpios = <&gpy7 7 GPIO_ACTIVE_LOW>; |
| parade,regs = /bits/ 8 < |
| 0x02 0xa1 0x01 /* HPD low */ |
| /* |
| * SW setting |
| * [1:0] SW output 1.2V voltage is lower to 96% |
| */ |
| 0x04 0x14 0x01 |
| /* |
| * RCO SS setting |
| * [5:4] = b01 0.5%, b10 1%, b11 1.5% |
| */ |
| 0x04 0xe3 0x20 |
| 0x04 0xe2 0x80 /* [7] RCO SS enable */ |
| /* |
| * RPHY Setting |
| * [3:2] CDR tune wait cycle before |
| * measure for fine tune b00: 1us, |
| * 01: 0.5us, 10:2us, 11:4us. |
| */ |
| 0x04 0x8a 0x0c |
| 0x04 0x89 0x08 /* [3] RFD always on */ |
| /* |
| * CTN lock in/out: |
| * 20000ppm/80000ppm. Lock out 2 |
| * times. |
| */ |
| 0x04 0x71 0x2d |
| /* |
| * 2.7G CDR settings |
| * NOF=40LSB for HBR CDR setting |
| */ |
| 0x04 0x7d 0x07 |
| 0x04 0x7b 0x00 /* [1:0] Fmin=+4bands */ |
| 0x04 0x7a 0xfd /* [7:5] DCO_FTRNG=+-40% */ |
| /* |
| * 1.62G CDR settings |
| * [5:2]NOF=64LSB [1:0]DCO scale is 2/5 |
| */ |
| 0x04 0xc0 0x12 |
| 0x04 0xc1 0x92 /* Gitune=-37% */ |
| 0x04 0xc2 0x1c /* Fbstep=100% */ |
| 0x04 0x32 0x80 /* [7]LOS signal disable */ |
| /* |
| * RPIO Setting |
| * [7:4] LVDS driver bias current : |
| * 75% (250mV swing) |
| */ |
| 0x04 0x00 0xb0 |
| /* |
| * [7:6] Right-bar GPIO output strength is 8mA |
| */ |
| 0x04 0x15 0x40 |
| /* EQ Training State Machine Setting */ |
| 0x04 0x54 0x10 /* RCO calibration start */ |
| /* [4:0] MAX_LANE_COUNT set to one lane */ |
| 0x01 0x02 0x81 |
| /* [4:0] LANE_COUNT_SET set to one lane */ |
| 0x01 0x21 0x81 |
| 0x00 0x52 0x20 |
| 0x00 0xf1 0x03 /* HPD CP toggle enable */ |
| 0x00 0x62 0x41 |
| /* Counter number add 1ms counter delay */ |
| 0x00 0xf6 0x01 |
| /* |
| * [6]PWM function control by |
| * DPCD0040f[7], default is PWM |
| * block always works. |
| */ |
| 0x00 0x77 0x06 |
| /* |
| * 04h Adjust VTotal tolerance to |
| * fix the 30Hz no display issue |
| */ |
| 0x00 0x4c 0x04 |
| /* DPCD00400='h00, Parade OUI = 'h001cf8 */ |
| 0x01 0xc0 0x00 |
| 0x01 0xc1 0x1c /* DPCD00401='h1c */ |
| 0x01 0xc2 0xf8 /* DPCD00402='hf8 */ |
| /* |
| * DPCD403~408 = ASCII code |
| * D2SLV5='h4432534c5635 |
| */ |
| 0x01 0xc3 0x44 |
| 0x01 0xc4 0x32 /* DPCD404 */ |
| 0x01 0xc5 0x53 /* DPCD405 */ |
| 0x01 0xc6 0x4c /* DPCD406 */ |
| 0x01 0xc7 0x56 /* DPCD407 */ |
| 0x01 0xc8 0x35 /* DPCD408 */ |
| /* |
| * DPCD40A, Initial Code major revision |
| * '01' |
| */ |
| 0x01 0xca 0x01 |
| /* DPCD40B Initial Code minor revision '05' */ |
| 0x01 0xcb 0x05 |
| /* DPCD720 Select internal PWM */ |
| 0x01 0xa5 0xa0 |
| /* |
| * FFh for 100% PWM of brightness, 0h for 0% |
| * brightness |
| */ |
| 0x01 0xa7 0xff |
| /* |
| * Set LVDS output as 6bit-VESA mapping, |
| * single LVDS channel |
| */ |
| 0x01 0xcc 0x13 |
| /* Enable SSC set by register */ |
| 0x02 0xb1 0x20 |
| /* |
| * Set SSC enabled and +/-1% central |
| * spreading |
| */ |
| 0x04 0x10 0x16 |
| /* MPU Clock source: LC => RCO */ |
| 0x04 0x59 0x60 |
| 0x04 0x54 0x14 /* LC -> RCO */ |
| 0x02 0xa1 0x91>; /* HPD high */ |
| |
| ports { |
| port@0 { |
| bridge_out: endpoint { |
| remote-endpoint = <&panel_in>; |
| }; |
| }; |
| |
| port@1 { |
| bridge_in: endpoint { |
| remote-endpoint = <&dp_out>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| sound@3830000 { |
| samsung,codec-type = "max98090"; |
| }; |
| |
| i2c@12E10000 { /* i2c9 */ |
| clock-frequency = <400000>; |
| tpm@20 { |
| compatible = "infineon,slb9645tt"; |
| reg = <0x20>; |
| }; |
| }; |
| |
| panel: panel { |
| compatible = "auo,b116xw03"; |
| power-supply = <&tps65090_fet6>; |
| backlight = <&backlight>; |
| |
| port { |
| panel_in: endpoint { |
| remote-endpoint = <&bridge_out>; |
| }; |
| }; |
| }; |
| |
| spi@12d30000 { /* spi1 */ |
| spi-max-frequency = <50000000>; |
| firmware_storage_spi: flash@0 { |
| compatible = "jedec,spi-nor"; |
| reg = <0>; |
| |
| /* |
| * A region for the kernel to store a panic event |
| * which the firmware will add to the log. |
| */ |
| elog-panic-event-offset = <0x01e00000 0x100000>; |
| |
| elog-shrink-size = <0x400>; |
| elog-full-threshold = <0xc00>; |
| }; |
| }; |
| |
| xhci@12000000 { |
| samsung,vbus-gpio = <&gph0 0 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| xhci@12400000 { |
| samsung,vbus-gpio = <&gph0 1 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| fimd@14400000 { |
| samsung,vl-freq = <60>; |
| samsung,vl-col = <1366>; |
| samsung,vl-row = <768>; |
| samsung,vl-width = <1366>; |
| samsung,vl-height = <768>; |
| |
| samsung,vl-clkp; |
| samsung,vl-dp; |
| samsung,vl-bpix = <4>; |
| |
| samsung,vl-hspw = <32>; |
| samsung,vl-hbpd = <40>; |
| samsung,vl-hfpd = <40>; |
| samsung,vl-vspw = <6>; |
| samsung,vl-vbpd = <10>; |
| samsung,vl-vfpd = <12>; |
| samsung,vl-cmd-allow-len = <0xf>; |
| |
| samsung,winid = <3>; |
| samsung,interface-mode = <1>; |
| samsung,dp-enabled = <1>; |
| samsung,dual-lcd-enabled = <0>; |
| }; |
| }; |
| |
| &dp { |
| status = "okay"; |
| samsung,color-space = <0>; |
| samsung,dynamic-range = <0>; |
| samsung,ycbcr-coeff = <0>; |
| samsung,color-depth = <1>; |
| samsung,link-rate = <0x06>; |
| samsung,lane-count = <2>; |
| samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>; |
| |
| ports { |
| port@0 { |
| dp_out: endpoint { |
| remote-endpoint = <&bridge_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &spi_2 { |
| spi-max-frequency = <3125000>; |
| spi-deactivate-delay = <200>; |
| status = "okay"; |
| num-cs = <1>; |
| samsung,spi-src-clk = <0>; |
| cs-gpios = <&gpb1 2 0>; |
| |
| cros_ec: cros-ec@0 { |
| compatible = "google,cros-ec-spi"; |
| interrupt-parent = <&gpx1>; |
| interrupts = <5 0>; |
| reg = <0>; |
| spi-half-duplex; |
| spi-max-timeout-ms = <1100>; |
| ec-interrupt = <&gpx1 5 GPIO_ACTIVE_LOW>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| /* |
| * This describes the flash memory within the EC. Note |
| * that the STM32L flash erases to 0, not 0xff. |
| */ |
| flash@8000000 { |
| reg = <0x08000000 0x20000>; |
| erase-value = <0>; |
| }; |
| |
| controller-data { |
| samsung,spi-feedback-delay = <1>; |
| }; |
| |
| i2c_tunnel: i2c-tunnel { |
| compatible = "google,cros-ec-i2c-tunnel"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| google,remote-bus = <0>; |
| |
| battery: sbs-battery@b { |
| compatible = "sbs,sbs-battery"; |
| reg = <0xb>; |
| sbs,poll-retry-count = <1>; |
| sbs,i2c-retry-count = <2>; |
| }; |
| |
| power-regulator@48 { |
| compatible = "ti,tps65090"; |
| reg = <0x48>; |
| |
| regulators { |
| tps65090_dcdc1: dcdc1 { |
| ti,enable-ext-control; |
| }; |
| tps65090_dcdc2: dcdc2 { |
| ti,enable-ext-control; |
| }; |
| tps65090_dcdc3: dcdc3 { |
| ti,enable-ext-control; |
| }; |
| tps65090_fet1: fet1 { |
| regulator-name = "vcd_led"; |
| }; |
| tps65090_fet2: fet2 { |
| regulator-name = "video_mid"; |
| regulator-always-on; |
| }; |
| tps65090_fet3: fet3 { |
| regulator-name = "wwan_r"; |
| regulator-always-on; |
| }; |
| tps65090_fet4: fet4 { |
| regulator-name = "sdcard"; |
| regulator-always-on; |
| }; |
| tps65090_fet5: fet5 { |
| regulator-name = "camout"; |
| regulator-always-on; |
| }; |
| tps65090_fet6: fet6 { |
| regulator-name = "lcd_vdd"; |
| }; |
| tps65090_fet7: fet7 { |
| regulator-name = "video_mid_1a"; |
| regulator-always-on; |
| }; |
| tps65090_ldo1: ldo1 { |
| }; |
| tps65090_ldo2: ldo2 { |
| }; |
| }; |
| |
| charger { |
| compatible = "ti,tps65090-charger"; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| #include "cros-ec-keyboard.dtsi" |