diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi index e6117657a137..857a97c27e7b 100644 --- a/arch/arm/boot/dts/rk3288-evb.dtsi +++ b/arch/arm/boot/dts/rk3288-evb.dtsi @@ -43,11 +43,6 @@ default-brightness-level = <128>; }; - memory@0 { - device_type = "memory"; - reg = <0x0 0x0 0x0 0x80000000>; - }; - adc-keys { compatible = "adc-keys"; io-channels = <&saradc 1>; @@ -85,6 +80,63 @@ }; }; + sound: sound { + status = "disabled"; + 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>; + }; + }; + }; + + hdmi_analog_sound: hdmi-analog-sound { + compatible = "rockchip,rk3288-hdmi-analog", + "rockchip,rk3368-hdmi-analog"; + rockchip,model = "rockchip,rt5640-codec"; + rockchip,cpu = <&i2s>; + rockchip,codec = <&rt5640>, <&hdmi>; + rockchip,widgets = + "Microphone", "Microphone Jack", + "Headphone", "Headphone Jack"; + rockchip,routing = + "MIC1", "Microphone Jack", + "MIC2", "Microphone Jack", + "Microphone Jack", "micbias1", + "Headphone Jack", "HPOL", + "Headphone Jack", "HPOR"; + status = "disabled"; + }; + ext_gmac: external-gmac-clock { compatible = "fixed-clock"; clock-frequency = <125000000>; @@ -109,6 +161,15 @@ }; }; + 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"; @@ -121,6 +182,15 @@ regulator-boot-on; }; + vcc_otg_vbus: otg-vbus-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&otg_vbus_drv>; + regulator-name = "vcc_otg_vbus"; + }; + vcc_phy: vcc-phy-regulator { compatible = "regulator-fixed"; enable-active-high; @@ -143,6 +213,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 @@ -159,6 +239,27 @@ 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"; + }; }; &cpu0 { @@ -176,21 +277,27 @@ }; &saradc { - vref-supply = <&vcc_18>; + vref-supply = <&vccadc_ref>; status = "okay"; }; &sdmmc { 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 */ + num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; status = "okay"; vmmc-supply = <&vcc_sd>; vqmmc-supply = <&vccio_sd>; + supports-sd; }; &gmac { @@ -231,6 +338,26 @@ status = "okay"; }; +&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>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s0_mclk>; + }; +}; + +&i2c3 { + status = "okay"; +}; + &i2c4 { status = "okay"; clock-frequency = <400000>; @@ -250,6 +377,18 @@ status = "okay"; }; +&i2s { + #sound-dai-cells = <0>; + status = "okay"; +}; + +&io_domains { + status = "okay"; + + sdcard-supply = <&vccio_sd>; + wifi-supply = <&vcc_18>; +}; + &wdt { status = "okay"; }; @@ -280,6 +419,44 @@ status = "okay"; }; +&usbphy { + status = "okay"; +}; + +&usb_host0_ehci { + rockchip-relinquish-port; + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host1 { + status = "okay"; +}; + +&usb_otg { + vbus-supply = <&vcc_otg_vbus>; + status = "okay"; +}; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { + status = "okay"; +}; + &pinctrl { pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { drive-strength = <8>; @@ -337,6 +514,14 @@ host_vbus_drv: host-vbus-drv { rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; }; + + otg_vbus_drv: otg-bus-drv { + rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + pwr_3g: pwr-3g { + rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; eth_phy { @@ -344,32 +529,10 @@ 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"; -}; - -&vopl_mmu { - status = "okay"; + wireless-bluetooth { + uart0_gpios: uart0-gpios { + rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; };