};
};
+ ramoops_mem: ramoops_mem {
+ reg = <0x0 0x100000 0x0 0x100000>;
+ reg-names = "ramoops_mem";
+ };
+
+ ramoops {
+ compatible = "ramoops";
+ record-size = <0x0 0x10000>;
+ console-size = <0x0 0x80000>;
+ ftrace-size = <0x0 0x10000>;
+ pmsg-size = <0x0 0x50000>;
+ memory-region = <&ramoops_mem>;
+ };
+
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm0 0 25000 PWM_POLARITY_INVERTED>;
};
power-key {
- gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
linux,code = <116>;
label = "power";
gpio-key,wakeup;
};
};
- sound {
+ rt5640-sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "rockchip,rt5640-codec";
};
};
+ spdif-sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "rockchip,spdif";
+ simple-audio-card,cpu {
+ sound-dai = <&spdif>;
+ };
+ simple-audio-card,codec {
+ sound-dai = <&spdif_out>;
+ };
+ };
+
+ spdif_out: spdif-out {
+ compatible = "linux,spdif-dit";
+ #sound-dai-cells = <0>;
+ };
+
vcc_sys: vcc-sys {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
#clock-cells = <0>;
};
+ vbus_host: vbus-host-regulator {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&host_vbus_drv>;
+ regulator-name = "vbus_host";
+ };
+
vcc_phy: vcc-phy-regulator {
compatible = "regulator-fixed";
enable-active-high;
- gpio = <&gpio0 24 GPIO_ACTIVE_HIGH>;
+ gpio = <&gpio0 25 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <ð_phy_pwr>;
regulator-name = "vcc_phy";
sdcard-supply = <&vccio_sd>;
tphdsor-supply = <&vcc_io>;
};
+
+ dwc_control_usb: dwc-control-usb {
+ compatible = "rockchip,rk3368-dwc-control-usb";
+ rockchip,grf = <&grf>;
+ grf-offset = <0x049c>; /* GRF_SOC_STATUS for USB2.0 OTG */
+ interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "otg_id", "otg_bvalid",
+ "otg_linestate", "host0_linestate";
+ clocks = <&cru SCLK_USBPHY480M>, <&cru HCLK_OTG>;
+ clock-names = "sclk_otgphy0", "otg";
+
+ usb_bc {
+ compatible = "inno,phy";
+ regbase = &dwc_control_usb;
+ rk_usb,bvalid = <0x49c 23 1>;
+ rk_usb,iddig = <0x49c 26 1>;
+ rk_usb,vdmsrcen = <0x718 12 1>;
+ rk_usb,vdpsrcen = <0x718 11 1>;
+ rk_usb,rdmpden = <0x718 10 1>;
+ rk_usb,idpsrcen = <0x718 9 1>;
+ rk_usb,idmsinken = <0x718 8 1>;
+ rk_usb,idpsinken = <0x718 7 1>;
+ rk_usb,dpattach = <0x498 31 1>;
+ rk_usb,cpdet = <0x498 30 1>;
+ rk_usb,dcpattach = <0x498 29 1>;
+ };
+ };
+
+ i2c@2 {
+ compatible = "i2c-gpio";
+ gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>, /* sda */
+ <&gpio5 16 GPIO_ACTIVE_HIGH>; /* scl */
+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_gpio>;
+ status = "disabled";
+ };
+
+ i2c@4 {
+ compatible = "i2c-gpio";
+ gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>, /* sda */
+ <&gpio5 8 GPIO_ACTIVE_HIGH>; /* scl */
+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c4_gpio>;
+ status = "okay";
+
+ gt9xx: gt9xx@14 {
+ compatible = "goodix,gt9xx";
+ reg = <0x14>;
+ touch-gpio = <&gpio5 11 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>;
+ max-x = <1200>;
+ max-y = <1900>;
+ tp-size = <911>;
+ tp-supply = <&vcc_tp>;
+ status = "okay";
+ };
+ };
+
+ sdio_pwrseq: sdio-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&rk818 1>;
+ clock-names = "ext_clock";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_enable_h>;
+
+ /*
+ * On the module itself this is one of these (depending
+ * on the actual card populated):
+ * - SDIO_RESET_L_WL_REG_ON
+ * - PDN (power down when low)
+ */
+ reset-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; /* GPIO0_B6 */
+ };
+
+ wireless-wlan {
+ compatible = "wlan-platdata";
+ rockchip,grf = <&grf>;
+ wifi_chip_type = "ap6335";
+ sdio_vref = <1800>;
+ WIFI,host_wake_irq = <&gpio3 20 GPIO_ACTIVE_HIGH>; /* GPIO3_c4 */
+ status = "okay";
+ };
+
+ wireless-bluetooth {
+ compatible = "bluetooth-platdata";
+ //wifi-bt-power-toggle;
+ uart_rts_gpios = <&gpio3 11 GPIO_ACTIVE_LOW>; /* GPIO3_b3 */
+ pinctrl-names = "default","rts_gpio";
+ pinctrl-0 = <&uart0_rts>;
+ pinctrl-1 = <&uart0_rts_gpio>;
+ //BT,power_gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIO3_c3 */
+ BT,reset_gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIO3_c3 */
+ BT,wake_gpio = <&gpio3 18 GPIO_ACTIVE_HIGH>; /* GPIO3_c2 */
+ BT,wake_host_irq = <&gpio3 21 GPIO_ACTIVE_HIGH>; /* GPIO3_c5 */
+ status = "okay";
+ };
+};
+
+&tsadc {
+ status = "okay";
+};
+
+&nandc0 {
+ status = "okay"; /* enable both for emmc and nand */
};
&emmc {
};
&sdio {
- clock-frequency = <50000000>;
- clock-freq-min-max = <200000 50000000>;
+ clock-frequency = <37500000>;
+ clock-freq-min-max = <200000 37500000>;
supports-sdio;
bus-width = <4>;
disable-wp;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ keep-power-in-suspend;
+ mmc-pwrseq = <&sdio_pwrseq>;
non-removable;
num-slots = <1>;
pinctrl-names = "default";
pinctrl-0 = <&sdio_bus4 &sdio_cmd &sdio_clk>;
- status = "disabled";
+ sd-uhs-sdr104;
+ status = "okay";
+};
+
+&uart0 {
+ status = "okay";
+ pinctrl-0 = <&uart0_xfer &uart0_cts>;
};
&saradc {
&i2c0 {
status = "okay";
+ i2c-scl-rising-time-ns = <250>;
+ i2c-scl-falling-time-ns = <20>;
syr827: syr827@40 {
regulator-name = "vdd_arm";
regulator-always-on;
regulator-boot-on;
regulator-initial-state = <3>;
+ regulator-ramp-delay = <2000>;
regulator-state-mem {
- regulator-on-in-suspend;
+ regulator-off-in-suspend;
regulator-suspend-microvolt = <900000>;
};
};
};
};
};
+
+ battery {
+ compatible = "rk818-battery";
+ ocv_table = <3400 3650 3693 3707 3731 3749 3760
+ 3770 3782 3796 3812 3829 3852 3882
+ 3915 3951 3981 4047 4086 4132 4182>;
+ design_capacity = <7916>;
+ design_qmax = <8708>;
+ bat_res = <65>;
+ max_input_current = <2000>;
+ max_chrg_current = <1600>;
+ max_chrg_voltage = <4200>;
+ sleep_enter_current = <300>;
+ sleep_exit_current = <300>;
+ power_off_thresd = <3400>;
+ zero_algorithm_vol = <3850>;
+ fb_temperature = <105>;
+ sample_res = <20>;
+ max_soc_offset = <60>;
+ energy_mode = <0>;
+ monitor_sec = <5>;
+ virtual_power = <0>;
+ power_dc2otg = <0>;
+ };
};
};
&i2c1 {
status = "okay";
+ i2c-scl-rising-time-ns = <460>;
+ i2c-scl-falling-time-ns = <15>;
rt5640: rt5640@1c {
#sound-dai-cells = <0>;
#sound-dai-cells = <0>;
};
+&spdif {
+ status = "okay";
+ #sound-dai-cells = <0>;
+};
+
&pwm0 {
status = "okay";
};
+&rga {
+ status = "okay";
+};
+
&uart2 {
status = "okay";
};
status = "okay";
};
+&hdmi {
+ status = "okay";
+ rockchip,hdmi_video_source = <DISPLAY_SOURCE_LCDC1>;
+ rockchip,phy_table =
+ <148500000 0 0 17 18 18 18>,
+ <297000000 1 1 17 14 14 14>,
+ <594000000 1 1 16 5 5 5>;
+};
+
&vop_lite {
status = "okay";
rockchip,prop = <EXTEND>;
status = "okay";
};
+&iep_mmu {
+ status = "okay";
+};
+
+&vpu_mmu {
+ status = "okay";
+};
+
+&vdec_mmu {
+ status = "okay";
+};
+
+&iep {
+ status = "okay";
+};
+
+&vpu {
+ status = "okay";
+};
+
+&rkvdec {
+ status = "okay";
+};
+
&vop_big {
status = "okay";
rockchip,prop = <PRMRY>;
};
&pinctrl {
- pmic {
- pmic_int_l: pmic-int-l {
- rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
- };
- };
+ pmic {
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+
+ sdio-pwrseq {
+ wifi_enable_h: wifienable-h {
+ rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ wireless-bluetooth {
+ uart0_rts_gpio: uart0-rts-gpios {
+ rockchip,pins = <3 11 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
};
&gmac {
- phy_regulator = "vcc_phy";
+ phy-supply = <&vcc_phy>;
phy-mode = "rgmii";
clock_in_out = "input";
- snps,reset-gpio = <&gpio2 15 0>;
+ snps,reset-gpio = <&gpio2 15 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
- snps,reset-delays-us = <0 10000 1000000>;
+ snps,reset-delays-us = <0 10000 50000>;
assigned-clocks = <&cru SCLK_MAC>;
assigned-clock-parents = <&ext_gmac>;
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>;
- tx_delay = <0x30>;
- rx_delay = <0x10>;
+ tx_delay = <0x25>;
+ rx_delay = <0x1d>;
+ status = "okay";
+};
+
+&u2phy_host {
+ phy-supply = <&vbus_host>;
+};
+
+&dwc_control_usb {
+ otg_drv_gpio = <&gpio0 10 GPIO_ACTIVE_LOW>; /* GPIO_B2 = 10 */
+
+ rockchip,remote_wakeup;
+ rockchip,usb_irq_wakeup;
+};
+
+&usb_host0_ehci {
+ assigned-clocks = <&cru SCLK_USBPHY480M>;
+ assigned-clock-parents = <&u2phy>;
+ status = "okay";
+};
+
+&usb_host0_ohci {
+ status = "okay";
+};
+
+&usb_otg {
+ clocks = <&cru SCLK_USBPHY480M>, <&cru HCLK_OTG>;
+ clock-names = "usbphy_480m", "otg";
+ resets = <&cru SRST_USBOTG_AHB>,
+ <&cru SRST_USBOTG_PHY>,
+ <&cru SRST_USBOTG_CON>;
+ reset-names = "otg_ahb", "otg_phy", "otg_controller";
+ /* 0 - Normal, 1 - Force Host, 2 - Force Device */
+ rockchip,usb-mode = <0>;
+ status = "okay";
+};
+
+&scr {
+ status = "disabled";
+};
+
+&cpu0 {
+ cpu-supply = <&syr827>;
+};
+
+&gpu {
+ mali-supply = <&vdd_logic>;
+ status = "okay";
+};
+
+&pvtm {
+ status = "okay";
+};
+
+&pmu_pvtm {
status = "okay";
};