X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=arch%2Farm%2Fboot%2Fdts%2Frk3288-evb.dtsi;h=41b8eae3304cf3ef1e80d7d9ab5492551928cb60;hb=54be7ce59bf2114a90d2cc215efae026af9c6437;hp=f6d2e7894b051bbde8333b41427c613d8a560aff;hpb=985f2c87a7109a42cac93f56ea595353d53a1746;p=firefly-linux-kernel-4.4.55.git diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi index f6d2e7894b05..41b8eae3304c 100644 --- a/arch/arm/boot/dts/rk3288-evb.dtsi +++ b/arch/arm/boot/dts/rk3288-evb.dtsi @@ -1,4 +1,6 @@ /* + * Copyright (c) 2015~2017 Fuzhou Rockchip Electronics Co., Ltd + * * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual * licensing only applies to this file, and not this project as a @@ -39,15 +41,47 @@ */ #include +#include #include "rk3288.dtsi" / { - memory { - device_type = "memory"; - reg = <0x0 0x80000000>; + chosen { + bootargs = "earlycon=uart8250,mmio32,0xff690000 swiotlb=1"; }; - backlight { + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + drm_logo: drm-logo@00000000 { + compatible = "rockchip,drm-logo"; + reg = <0x0 0x0>; + }; + + /* global autoconfigured region for contiguous allocations */ + linux,cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x0 0x2000000>; + linux,cma-default; + }; + }; + + ion { + compatible = "rockchip,ion"; + #address-cells = <1>; + #size-cells = <0>; + + cma-heap { + reg = <0x00000000 0x2000000>; + }; + + system-heap { + }; + }; + + backlight: backlight { compatible = "pwm-backlight"; brightness-levels = < 0 1 2 3 4 5 6 7 @@ -89,25 +123,134 @@ pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; }; - gpio-keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - autorepeat; + rk_key: rockchip-key { + compatible = "rockchip,key"; + status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&pwrbtn>; + io-channels = <&saradc 1>; + + vol-up-key { + linux,code = <115>; + label = "volume up"; + rockchip,adc_value = <1>; + }; + + vol-down-key { + linux,code = <114>; + label = "volume down"; + rockchip,adc_value = <170>; + }; - button@0 { + power-key { gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; linux,code = <116>; - label = "GPIO Key Power"; - linux,input-type = <1>; - gpio-key,wakeup = <1>; - debounce-interval = <100>; + pinctrl-names = "default"; + pinctrl-0 = <&pwrbtn>; + label = "power"; + gpio-key,wakeup; + }; + + menu-key { + linux,code = <59>; + label = "menu"; + rockchip,adc_value = <355>; + }; + + home-key { + linux,code = <102>; + label = "home"; + rockchip,adc_value = <746>; + }; + + back-key { + linux,code = <158>; + label = "back"; + rockchip,adc_value = <560>; + }; + + camera-key { + linux,code = <212>; + label = "camera"; + rockchip,adc_value = <450>; + }; + }; + + panel: panel { + compatible ="lg,lp079qx1-sp0v", "simple-panel"; + backlight = <&backlight>; + enable-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&lcd_cs>; + ports { + panel_in: port { + panel_in_edp: endpoint { + remote-endpoint = <&edp_out_panel>; + }; + }; }; }; + sound { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "rockchip,rt5640-codec"; + simple-audio-card,mclk-fs = <512>; + simple-audio-card,widgets = + "Microphone", "Microphone Jack", + "Headphone", "Headphone Jack"; + simple-audio-card,routing = + "MIC1", "Microphone Jack", + "MIC2", "Microphone Jack", + "Microphone Jack", "micbias1", + "Headphone Jack", "HPOL", + "Headphone Jack", "HPOR"; + + simple-audio-card,dai-link@0 { + format = "i2s"; + cpu { + sound-dai = <&i2s>; + }; + + codec { + sound-dai = <&rt5640>; + }; + }; + + simple-audio-card,dai-link@1 { + format = "i2s"; + cpu { + sound-dai = <&i2s>; + }; + + codec { + sound-dai = <&hdmi>; + }; + }; + }; + + lvds_panel: lvds_panel { + compatible ="auo,b101ew05","simple-panel"; + backlight = <&backlight>; + enable-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&lcd_cs>; + status = "disabled"; + }; + + ext_gmac: external-gmac-clock { + compatible = "fixed-clock"; + clock-frequency = <125000000>; + clock-output-names = "ext_gmac"; + #clock-cells = <0>; + }; + + vccadc_ref: vccadc-ref { + compatible = "regulator-fixed"; + regulator-name = "vcc1v8_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + /* This turns on USB vbus for both host0 (ehci) and host1 (dwc2) */ vcc_host: vcc-host-regulator { compatible = "regulator-fixed"; @@ -142,6 +285,16 @@ regulator-boot-on; }; + /* This switch DIO3222 HOST_DP_HOST to host2 (dwc2) */ + vcc_3g: vcc-3g-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pwr_3g>; + regulator-name = "vcc_3g"; + }; + /* * NOTE: vcc_sd isn't hooked up on v1.0 boards where power comes from * vcc_io directly. Those boards won't be able to power cycle SD cards @@ -149,7 +302,6 @@ */ vcc_sd: sdmmc-regulator { compatible = "regulator-fixed"; - gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_pwr>; regulator-name = "vcc_sd"; @@ -158,10 +310,30 @@ startup-delay-us = <100000>; vin-supply = <&vcc_io>; }; + + wireless-bluetooth { + compatible = "bluetooth-platdata"; + uart_rts_gpios = <&gpio4 19 GPIO_ACTIVE_LOW>; + pinctrl-names = "default", "rts_gpio"; + pinctrl-0 = <&uart0_rts>; + pinctrl-1 = <&uart0_gpios>; + BT,reset_gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>; + BT,wake_gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>; + BT,wake_host_irq = <&gpio4 31 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + + wireless-wlan { + compatible = "wlan-platdata"; + rockchip,grf = <&grf>; + wifi_chip_type = "ap6335"; + sdio_vref = <1800>; + WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; }; &emmc { - broken-cd; bus-width = <8>; cap-mmc-highspeed; disable-wp; @@ -172,14 +344,49 @@ status = "okay"; }; +&gmac { + phy-supply = <&vcc_phy>; + phy-mode = "rgmii"; + clock_in_out = "input"; + snps,reset-gpio = <&gpio4 7 0>; + snps,reset-active-low; + snps,reset-delays-us = <0 10000 1000000>; + assigned-clocks = <&cru SCLK_MAC>; + assigned-clock-parents = <&ext_gmac>; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_pins>; + tx_delay = <0x30>; + rx_delay = <0x10>; + status = "okay"; +}; + &hdmi { - ddc-i2c-bus = <&i2c5>; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <0>; + status = "okay"; + + /* Don't use vopl for HDMI */ + ports { + hdmi_in: port { + /delete-node/ endpoint@1; + }; + }; +}; + +&saradc { + vref-supply = <&vccadc_ref>; status = "okay"; }; &sdmmc { + supports-sd; bus-width = <4>; cap-mmc-highspeed; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; cap-sd-highspeed; card-detect-delay = <200>; disable-wp; /* wp not hooked up */ @@ -189,14 +396,81 @@ status = "okay"; vmmc-supply = <&vcc_sd>; vqmmc-supply = <&vccio_sd>; + supports-sd; +}; + +&edp_phy { + status = "okay"; +}; + +&edp { + force-hpd; + status = "okay"; + + ports { + /* Don't use vopb for eDP */ + edp_in: port@0 { + /delete-node/ endpoint@0; + }; + + edp_out: port@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + edp_out_panel: endpoint { + reg = <0>; + remote-endpoint = <&panel_in_edp>; + }; + }; + }; +}; + +&hevc_service { + status = "okay"; }; &i2c0 { status = "okay"; }; -&i2c5 { +&i2c2 { + status = "okay"; + + rt5640: rt5640@1c { + #sound-dai-cells = <0>; + compatible = "realtek,rt5640"; + reg = <0x1c>; + clocks = <&cru SCLK_I2S0_OUT>; + clock-names = "mclk"; + interrupt-parent = <&gpio6>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + }; +}; + +&i2c4 { + status = "okay"; + + gsl3673@40 { + compatible = "GSL,GSL3673"; + reg = <0x40>; + screen_max_x = <1536>; + screen_max_y = <2048>; + irq_gpio_number = <&gpio7 6 IRQ_TYPE_LEVEL_LOW>; + rst_gpio_number = <&gpio7 5 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; +}; + +&i2s { + #sound-dai-cells = <0>; + status = "okay"; +}; + +&io_domains { status = "okay"; + + sdcard-supply = <&vccio_sd>; + wifi-supply = <&vcc_18>; }; &wdt { @@ -207,23 +481,41 @@ status = "okay"; }; -&uart0 { +&rga { status = "okay"; }; -&uart1 { +&sdio0 { status = "okay"; + + clock-frequency = <50000000>; + clock-freq-min-max = <200000 50000000>; + + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + disable-wp; + keep-power-in-suspend; + mmc-pwrseq = <&sdio_pwrseq>; + non-removable; + num-slots = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>; + sd-uhs-sdr104; + supports-sdio; }; -&uart2 { +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_xfer &uart0_cts>; status = "okay"; }; -&uart3 { +&uart2 { status = "okay"; }; -&uart4 { +&vpu_service { status = "okay"; }; @@ -233,6 +525,56 @@ status = "okay"; }; +&usbphy { + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host1 { + status = "okay"; +}; + +&usb_otg { + status = "okay"; +}; + +&lvds { + rockchip,data-mapping = "jeida"; + rockchip,data-width = <24>; + rockchip,output = "lvds"; + rockchip,panel = <&lvds_panel>; + status = "disabled"; +}; + +&vopb { + status = "okay"; + + /* Don't use vopb for eDP, save it for HDMI */ + vopb_out: port { + /delete-node/ endpoint@1; + }; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; + + /* Don't use vopb for HDMI, save it for eDP */ + vopl_out: port { + /delete-node/ endpoint@0; + }; +}; + +&vopl_mmu { + status = "okay"; +}; + &pinctrl { pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { drive-strength = <8>; @@ -261,6 +603,12 @@ }; }; + sdio-pwrseq { + wifi_enable_h: wifi-enable-h { + rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + sdmmc { /* * Default drive strength isn't enough to achieve even @@ -290,6 +638,10 @@ host_vbus_drv: host-vbus-drv { rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; }; + + pwr_3g: pwr-3g { + rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; eth_phy { @@ -297,32 +649,16 @@ rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>; }; }; -}; -&usbphy { - status = "okay"; -}; - -&usb_host0_ehci { - status = "okay"; -}; - -&usb_host1 { - status = "okay"; -}; - -&vopb { - status = "okay"; -}; - -&vopb_mmu { - status = "okay"; -}; - -&vopl { - status = "okay"; -}; + lcd { + lcd_cs: lcd-cs { + rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; -&vopl_mmu { - status = "okay"; + wireless-bluetooth { + uart0_gpios: uart0-gpios { + rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; };