#include <dt-bindings/display/media-bus-format.h>

#define RP_DUAL_LCD

&rpdzkj {
        compatible = "rp_config";
        user_version = "rpdzkj";
        system_rotate = "0";
                csi_camera_rotate = "0"; //all csi camera rotation //0 90 180 270 //no effect
                csi_camera_facing = "0"; //0:auto  1:all front   2:all back //no effect
                usb_camera_rotate = "0"; //all usb camera rotation //0 90 180 270 
                usb_camera_facing = "0"; //0:auto  1:all front   2:all back
        lcd_density = "180";
        language = "zh-CN";   //zh-CN //en-US
        time_zone = "Asia/Shanghai"; //Asia/Shanghai = +8   //Europe/London  = +1       //Africa/Casablanca     = +0;
        not_navigation_bar = "false";
        not_status_bar = "false";
        default_launcher = "true";
        has_root = "true";
        usb_not_permission = "true";
        gps_use = "false";
        gps_serial_port = "/dev/ttyS4";
        primary_device = "LVDS-1";
        extend_device = "DSI-1";
        extend_rotate = "1";
        extend_rotate_2 = "0";
        rotation_efull = "true";
        rotation_efull_2 = "false";
        home_apk = "null";
        status = "okay";
};


&lvds_panel {
    status = "okay";
    compatible = "simple-panel";
    enable-delay-ms = <20>;
    prepare-delay-ms = <20>;
    unprepare-delay-ms = <20>;
    disable-delay-ms = <20>;
    bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA>;
    width-mm = <217>;
    height-mm = <136>;
    
        /**
         * power-supply = <>;
         * reset-gpios = <>;
         *
         * lcd reset pin and power supply
         * please refer to ***-lcd-gpio.dtsi
         * that included in main dts.
         */
         
    display-timings {
        native-mode = <&timing0>;

        timing0: timing0 {
            clock-frequency = <45000000>;
            hactive = <1024>;
            vactive = <600>;
            hback-porch = <160>;
            hfront-porch = <160>;
            vback-porch = <23>;
            vfront-porch = <12>;
            hsync-len = <20>;
            vsync-len = <3>;
            hsync-active = <0>;
            vsync-active = <0>;
            de-active = <0>;
            pixelclk-active = <0>;
        };
    };

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;
            dual-lvds-even-pixels;
            panel_in_lvds: endpoint {
                remote-endpoint = <&lvds_out_panel>;
            };
        };
    };
};



&dsi1 {
    status = "okay";
    //rockchip,lane-rate = <480>;
    dsi1_panel: panel@0 {

        status = "okay";
        compatible = "simple-panel-dsi";
        reg = <0>;
        reset-delay-ms = <60>;
        init-delay-ms = <60>;
        enable-delay-ms = <60>;
        prepare-delay-ms = <60>;
        unprepare-delay-ms = <60>;
        disable-delay-ms = <60>;
        dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
            MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
        dsi,format = <MIPI_DSI_FMT_RGB888>;
        dsi,lanes  = <4>;
        
        /**
         * power-supply = <>;
         * reset-gpios = <>;
         *
         * lcd reset pin and power supply
         * please refer to ***-lcd-gpio.dtsi
         * that included in main dts.
         */
        
        panel-init-sequence = [
            39 00 04 B9 F1 12 83

            39 00 1C BA 33 81 05 F9 0E 0E 20 00 00 00 00 00 00 00 44 25 00 91 0A 00 00 02 4F D1 00 00 37

            39 00 02 B8 26


            39 00 04 BF 02 10 00

            39 00 0B B3 07 0B 1E 1E 03 FF 00 00 00 00


            39 00 0A C0 73 73 50 50 00 00 08 70 00

            39 00 02 BC 46

            39 00 02 CC 0B

            39 00 02 B4 80

            39 00 04 B2 C8 12 A0

            39 00 0F E3 07 07 0B 0B 03 0B 00 00 00 00 FF 80 C0 10


            39 00 0D C1 53 00 32 32 77 F1 FF FF CC CC 77 77

            39 00 03 B5 09 09

            39 00 03 B6 B7 B7

            39 00 40 E9 C2 10 0A 00 00 81 80 12 30 00 37 86 81 80 37 18 00 05 00 00 00 00 00 05 00 00 00 00 F8 BA 46 02 08 28 88 88 88 88 88 F8 BA 57 13 18 38 88 88 88 88 88 00 00 00 03 00 00 00 00 00 00 00 00 00

            39 00 3E EA 07 12 01 01 02 3C 00 00 00 00 00 00 8F BA 31 75 38 18 88 88 88 88 88 8F BA 20 64 28 08 88 88 88 88 88 23 10 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

            39 00 23 E0 00 02 04 1A 23 3F 2C 28 05 09 0B 10 11 10 12 12 19 00 02 04 1A 23 3F 2C 28 05 09 0B 10 11 10 12 12 19


            05 ff 01 11 ////Sleep Out

            05 32 01 29 ///Display On
        ];
        
        panel-exit-sequence = [
            05 00 01 28
            05 78 01 10
        ];

        disp_timings0: display-timings {
            native-mode = <&dsi0_timing0>;
            dsi0_timing0: timing0 {
                                clock-frequency = <60000000>;
                                hactive = <720>;
                                vactive = <1280>;
                                hback-porch = <40>;
                                hfront-porch = <40>;
                                vback-porch = <11>;
                                vfront-porch = <16>;
                                hsync-len = <10>;
                                vsync-len = <3>;
                                hsync-active = <0>;
                                vsync-active = <0>;
                                de-active = <0>;
                                pixelclk-active = <0>;
            };
        };

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;
                panel_in_dsi1: endpoint {
                    remote-endpoint = <&dsi1_out_panel>;
                };
            };
        };
    };

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@1 {
            reg = <1>;
            dsi1_out_panel: endpoint {
                remote-endpoint = <&panel_in_dsi1>;
            };
        };
    };
};



&dsi0_in_vp0 {
    status = "disabled";
};

&dsi0_in_vp1 {
    status = "disabled";
};

&dsi1_in_vp0 {
    status = "okay";
};

&dsi1_in_vp1 {
    status = "disabled";
};

&lvds_in_vp1 {
    status = "okay";
};

&lvds_in_vp2 {
    status = "disabled";
};



&video_phy0 {
    status = "okay";
};

&video_phy1 {
    status = "okay";
};




&route_dsi1 {
    status = "okay";
    connect = <&vp0_out_dsi1>;
};

&route_lvds {
    status = "okay";
    connect = <&vp1_out_lvds>;
};

&lvds {
    status = "okay";

    ports {
        port@1 {
            reg = <1>;

            lvds_out_panel: endpoint {
                remote-endpoint = <&panel_in_lvds>;
            };
        };
    };
};



&gt9xx {
        status = "okay";

        compatible = "goodix,gt9xx";
        reg = <0x5d>;
        gtp_resolution_x = <1024>;
        gtp_resolution_y = <600>;
        gtp_int_tarigger = <1>;
        gtp_change_x2y = <0>;
        gtp_overturn_x = <0>;
        gtp_overturn_y = <0>;
        gtp_send_cfg = <1>;
        gtp_touch_wakeup = <1>;

        /**
         * goodix_rst_gpio = <>;
         * goodix_irq_gpio = <>;
         *
         * touch panel interrupt and reset pin
         * please refer to ***-lcd-gpio.dtsi
         * that included in main dts.
         */

        goodix,cfg-group0 = [
            5A 00 04 58 02 05 3D 00 01
            08 32 0F 5A 32 03 05 00 00
            00 00 02 00 00 18 1A 1E 14
            87 29 0A 55 57 B5 06 00 00
            00 20 33 1C 14 01 00 0F 00
            2B FF 7F 19 46 32 3C 78 94
            D5 02 08 00 00 04 98 40 00
            8A 4A 00 80 55 00 77 61 00
            6F 70 00 6F 00 00 00 00 F0
            40 30 FF FF 27 00 00 00 00
            00 00 00 00 00 00 00 00 00
            00 00 00 00 00 00 00 00 00
            00 00 00 00 02 04 06 08 0A
            0C 0E 10 12 14 FF FF FF FF
            00 00 00 00 00 00 00 00 00
            00 00 00 00 00 00 00 00 02
            04 06 08 0A 0C 1D 1E 1F 20
            21 22 24 26 28 29 2A FF FF
            FF FF FF FF FF FF 00 00 00
            00 00 00 00 00 00 00 00 00
            00 00 00 00 6F 01
        ];
};




