/*
+ * 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
*/
#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/input/input.h>
#include "rk3288.dtsi"
/ {
- memory {
- device_type = "memory";
- reg = <0x0 0x80000000>;
+ chosen {
+ bootargs = "earlycon=uart8250,mmio32,0xff690000 swiotlb=1";
+ };
+
+ 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 {
pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>;
};
+ rk_key: rockchip-key {
+ compatible = "rockchip,key";
+ status = "okay";
+
+ 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>;
+ };
+
+ power-key {
+ gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+ linux,code = <116>;
+ 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>;
#clock-cells = <0>;
};
- gpio-keys {
- compatible = "gpio-keys";
- #address-cells = <1>;
- #size-cells = <0>;
- autorepeat;
-
- pinctrl-names = "default";
- pinctrl-0 = <&pwrbtn>;
-
- button@0 {
- gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
- linux,code = <116>;
- label = "GPIO Key Power";
- linux,input-type = <1>;
- gpio-key,wakeup = <1>;
- debounce-interval = <100>;
- };
+ 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_sd: sdmmc-regulator {
compatible = "regulator-fixed";
- gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_pwr>;
regulator-name = "vcc_sd";
vin-supply = <&vcc_io>;
};
- io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
+ 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>;
- sdcard-supply = <&vccio_sd>;
+ wifi_chip_type = "ap6335";
+ sdio_vref = <1800>;
+ WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>;
+ status = "okay";
};
};
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 {
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <0>;
- ddc-i2c-bus = <&i2c5>;
+ status = "okay";
+
+ /* Don't use vopl for HDMI */
+ ports {
+ hdmi_in: port {
+ /delete-node/ endpoint@1;
+ };
+ };
+};
+
+&saradc {
+ vref-supply = <&vccadc_ref>;
status = "okay";
};
status = "okay";
vmmc-supply = <&vcc_sd>;
vqmmc-supply = <&vccio_sd>;
-};
-
-&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 = "ok";
+ supports-sd;
};
&edp_phy {
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>;
};
};
+&hevc_service {
+ status = "okay";
+};
+
&i2c0 {
status = "okay";
};
};
};
-&i2c5 {
+&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 {
status = "okay";
};
-&wdt {
+&io_domains {
status = "okay";
+
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vcc_18>;
};
-&pwm0 {
+&wdt {
status = "okay";
};
-&uart0 {
+&pwm0 {
status = "okay";
};
-&uart1 {
+&rga {
status = "okay";
};
-&uart2 {
+&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;
};
-&uart3 {
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_xfer &uart0_cts>;
status = "okay";
};
-&uart4 {
+&uart2 {
status = "okay";
};
-&vpu {
+&vpu_service {
status = "okay";
};
status = "okay";
};
+&usbphy {
+ status = "okay";
+};
+
+&usb_host0_ehci {
+ rockchip-relinquish-port;
+ 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>;
};
};
+ 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
rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
-};
-
-&usbphy {
- status = "okay";
-};
-
-&usb_host0_ehci {
- status = "okay";
-};
-
-&usb_host1 {
- status = "okay";
-};
-&lvds {
- rockchip,data-mapping = "jeida";
- rockchip,data-width = <24>;
- rockchip,output = "lvds";
- rockchip,panel = <&lvds_panel>;
- status = "disabled";
-};
-
-&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>;
+ };
+ };
};