Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    用小智SW106开发板驱动哪吒自带的MIPI显示屏

    其它全志芯片讨论区
    sw106 小智开发板 mipi 哪吒显示屏
    1
    4
    2807
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Y
      yixiuge LV 5 last edited by whycan

      https://item.taobao.com/item.htm?id=675605599955

      微信图片_20220627111723.jpg

      微信图片_20220627111728.jpg

      1 Reply Last reply Reply Quote Share 0
      • Y
        yixiuge LV 5 last edited by

        board.dts

        
        /*
         * Allwinner Technology CO., Ltd. sun50iw10p1 soc board.
         *
         * soc board support.
         */
        
        /dts-v1/;
        #include <dt-bindings/input/input.h>
        #include "sun50iw10p1.dtsi"
        
        /{
                model = "sun50iw10";
                compatible = "allwinner,a3", "arm,sun50iw10p1";
        
                reg_usb1_vbus: usb1-vbus {
                        compatible = "regulator-fixed";
                        gpio = <&pio PI 12 1 2 0 1>;
                        regulator-name = "usb1-vbus";
                        regulator-min-microvolt = <5000000>;
                        regulator-max-microvolt = <5000000>;
                        enable-active-high;
                };
        
                reg_3v3: vdd_3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                regulator-enable-ramp-delay = <1000>;
                enable-active-high;
            };
        
                soc@03000000 {
        
                        r_pio: pinctrl@07022000 {
        
                                s_twi0_pins_a: s_twi0@0 {
                                        allwinner,pins = "PL0", "PL1";
                                        allwinner,pname = "s_twi0_scl", "s_twi0_sda";
                                        allwinner,function = "s_twi0";
                                        allwinner,muxsel = <2>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <1>;
                                };
        
                                s_twi0_pins_b: s_twi0@1 {
                                        allwinner,pins = "PL0", "PL1";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
                                s_twi1_pins_a: s_twi1@0 {
                                        allwinner,pins = "PL8", "PL9";
                                        allwinner,pname = "s_twi1_scl", "s_twi1_sda";
                                        allwinner,function = "s_twi1";
                                        allwinner,muxsel = <2>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <1>;
                                };
        
                                s_twi1_pins_b: s_twi1@1 {
                                        allwinner,pins = "PL8", "PL9";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
                        };
                        pio: pinctrl@0300b000 {
                                twi0_pins_a: twi0@0 {
                                        allwinner,pins = "PD22", "PD23";
                                        allwinner,pname = "twi0_scl", "twi0_sda";
                                        allwinner,function = "twi0";
                                        allwinner,muxsel = <4>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi0_pins_b: twi0@1 {
                                        allwinner,pins = "PD22", "PD23";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi1_pins_a: twi1@0 {
                                        allwinner,pins = "PB4", "PB5";
                                        allwinner,pname = "twi1_scl", "twi1_sda";
                                        allwinner,function = "twi1";
                                        allwinner,muxsel = <2>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi1_pins_b: twi1@1 {
                                        allwinner,pins = "PB4", "PB5";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi2_pins_a: twi2@0 {
                                        allwinner,pins = "PE1", "PE2";
                                        allwinner,pname = "twi2_scl", "twi2_sda";
                                        allwinner,function = "twi2";
                                        allwinner,muxsel = <2>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi2_pins_b: twi2@1 {
                                        allwinner,pins = "PE1", "PE2";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi3_pins_a: twi3@0 {
                                        allwinner,pins = "PE3", "PE4";
                                        allwinner,pname = "twi3_scl", "twi3_sda";
                                        allwinner,function = "twi3";
                                        allwinner,muxsel = <2>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <1>;
                                };
        
                                twi3_pins_b: twi3@1 {
                                        allwinner,pins = "PE3", "PE4";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi5_pins_a: twi5@0 {
                                        allwinner,pins = "PI8", "PI9";
                                        allwinner,pname = "twi5_scl", "twi5_sda";
                                        allwinner,function = "twi5";
                                        allwinner,muxsel = <2>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                twi5_pins_b: twi5@1 {
                                        allwinner,pins = "PI8", "PI9";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                pwm0_pin_a: pwm0@0 {
                                        allwinner,pins = "PD23";
                                        allwinner,function = "pwm0";
                                        allwinner,muxsel = <0x02>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm0_pin_b: pwm0@1 {
                                        allwinner,pins = "PD23";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <0x07>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm1_pin_a: pwm1@0 {
                                        allwinner,pins = "PI0";
                                        allwinner,function = "pwm1";
                                        allwinner,muxsel = <0x04>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm1_pin_b: pwm1@1 {
                                        allwinner,pins = "PI0";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <0x07>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm2_pin_a: pwm2@0 {
                                        allwinner,pins = "PI1";
                                        allwinner,function = "pwm2";
                                        allwinner,muxsel = <0x04>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm2_pin_b: pwm2@1 {
                                        allwinner,pins = "PI1";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <0x07>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm3_pin_a: pwm3@0 {
                                        allwinner,pins = "PD21";
                                        allwinner,function = "pwm3";
                                        allwinner,muxsel = <0x02>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm3_pin_b: pwm3@1 {
                                        allwinner,pins = "PD21";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <0x07>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm7_pin_a: pwm7@0 {
                                        allwinner,pins = "PI6";
                                        allwinner,function = "pwm7";
                                        allwinner,muxsel = <0x04>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm7_pin_b: pwm7@1 {
                                        allwinner,pins = "PI6";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <0x07>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm8_pin_a: pwm8@0 {
                                        allwinner,pins = "PI7";
                                        allwinner,function = "pwm8";
                                        allwinner,muxsel = <0x04>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                pwm8_pin_b: pwm8@1 {
                                        allwinner,pins = "PI7";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <0x07>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0xffffffff>;
                                };
        
                                ledc_pins_a: ledc@0 {
                                        allwinner,pins = "PH19";
                                        allwinner,function = "ledc";
                                        allwinner,muxsel = <5>;
                                };
        
                                ledc_pins_b: ledc@1 {
                                        allwinner,pins = "PH19";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                };
        
                                key_pj1: key_pj1@0 {
                                        allwinner,pins = "PJ1";
                                        allwinner,function = "gpio_in";
                                        allwinner,muxsel = <0x00>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <1>;
                                        allwinner,data = <0x1>;
                                };
        
                                usb1_vbus_pin_a: usb1_vbus_pin@0 {
                                        allwinner,pins = "PH10";
                                        allwinner,function = "gpio_out";
                                        allwinner,muxsel = <0x01>;
                                        allwinner,drive = <0x2>;
                                        allwinner,pull = <0>;
                                        allwinner,data = <0x0>;
                                };
        
                                spi0_pins_a: spi0@0 {
                                        allwinner,pins = "PC2", "PC4", "PC12", "PC15", "PC16";
                                        allwinner,pname = "spi0_mosi", "spi0_miso",
                                                          "spi0_sclk", "spi0_wp", "spi0_hold";
                                        allwinner,function = "spi0";
                                        allwinner,muxsel = <4>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                spi0_pins_b: spi0@1 {
                                        allwinner,pins = "PC3", "PC7";
                                        allwinner,pname = "spi0_cs0", "spi0_cs1";
                                        allwinner,function = "spi0";
                                        allwinner,muxsel = <4>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <1>;   /* only CS should be pulled up */
                                };
        
                                spi0_pins_c: spi0@2 {
                                        allwinner,pins = "PC2", "PC3", "PC4", "PC7", "PC12", "PC15", "PC16";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                spi1_pins_a: spi1@0 {
                                        allwinner,pins = "PD11", "PD12", "PD13";
                                        allwinner,pname = "spi1_sclk", "spi1_mosi",
                                                          "spi1_miso";
                                        allwinner,function = "spi1";
                                        allwinner,muxsel = <4>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                spi1_pins_b: spi1@1 {
                                        allwinner,pins = "PD10";
                                        allwinner,pname = "spi1_cs0";
                                        allwinner,function = "spi1";
                                        allwinner,muxsel = <4>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <1>;   /* only CS should be pulled up */
                                };
        
                                spi1_pins_c: spi1@2 {
                                        allwinner,pins = "PD10", "PD11", "PD12", "PD13";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                spi2_pins_a: spi2@0 {
                                        allwinner,pins = "PB1", "PB2", "PB3";
                                        allwinner,pname = "spi2_sclk", "spi2_mosi",
                                                          "spi2_miso";
                                        allwinner,function = "spi2";
                                        allwinner,muxsel = <3>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
        
                                spi2_pins_b: spi2@1 {
                                        allwinner,pins = "PB0";
                                        allwinner,pname = "spi2_cs0";
                                        allwinner,function = "spi2";
                                        allwinner,muxsel = <3>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <1>;   /* only CS should be pulled up */
                                };
        
                                spi2_pins_c: spi2@2 {
                                        allwinner,pins = "PB0", "PB1", "PB2", "PB3";
                                        allwinner,function = "io_disabled";
                                        allwinner,muxsel = <7>;
                                        allwinner,drive = <1>;
                                        allwinner,pull = <0>;
                                };
                        };
        
         rotary {
             compatible = "rotary-encoder";
             pinctrl-names = "default";
             /*pinctrl-0 = <&rotary_pins>;*/
             gpios = <&pio PJ 0 6 1 3 0xffffffff>, <&pio PJ 1 6 1 3 0xffffffff>; /* PJ0, PJ1 */
             linux,axis = <0>; /* REL_X */
             rotary-encoder,encoding = "gray";
             rotary-encoder,relative-axis;
         };
        
        
               gpio_keys_polled {
                       compatible = "gpio-keys-polled";
                       pinctrl-names = "default";
                       pinctrl-0 = <&key_pj1>;
                       #address-cells = <1>;
                       #size-cells = <0>;
                       poll-interval = <100>;
        
                       button@0 {
                               label = "mute";
                               linux,code = <KEY_MUTE>;
                               gpios = <&pio PJ 0 6 1 1 1>; //PJ0
                       };
        
                       button@1 {
                               label = "power";
                               linux,code = <KEY_POWER>;
                               gpios = <&pio PJ 1 0 1 1 1>;
                       };
               };
        
        
        
                        gpio_keys {
                                device_type = "gpiokey";
                                compatible = "gpio-keys";
        //                      pinctrl-names = "default";
        //                      pinctrl-0 = <&key_pj1>;
        //                      #address-cells = <1>;
        //                      #size-cells = <0>;
        //                      autorepeat;
                                status = "disabled";
        
                                power_key {
                                        label = "volume down";
                                        linux,code = <KEY_VOLUMEDOWN>;
                                //      gpios = <&pio PJ 0 6 1 1 1>;
        //                              gpios = <&pio PJ 0 6 GPIO_ACTIVE_LOW>;
                                        gpios = <&pio PJ 1 0 1 0 1>;
        //                              debounce-interval = <100>;
        //                              wakeup-source;
                                        wakeup-source = <0x1>;
                                };
        
                                volume_down_key {
                                        label = "volume up";
                                        linux,code = <KEY_VOLUMEUP>;
        //                              gpios = <&pio PJ 1 6 1 1 1>;
        //                              gpios = <&pio PJ 1 GPIO_ACTIVE_LOW>;
                                        gpios = <&pio PJ 0 0 1 0 1>;
                                        //debounce-interval = <100>;
                                        wakeup-source = <0x1>;
                                };
                };
        
                        gmac0: eth@05020000 {
                                phy-mode = "rgmii";
                                use_ephy25m = <1>;
                                tx-delay = <7>;
                                rx-delay = <4>;
                                phy-rst = <&pio PH 19 1 1 1 0>;
                                status = "okay";
                        };
        
                        gmac1: eth@05030000 {
                                phy-mode = "rgmii";
                                use_ephy25m = <1>;
                                tx-delay = <7>;
                                rx-delay = <4>;
                                gmac-mtu = <900>;
                                phy-rst = <&pio PI 14 1 1 1 0>;
                                /*
                                gmac-power0-supply = <>;
                                gmac-power0-vol = <3300000>;
                                */
                                status = "disabled";
                        };
        
                        twi0: twi@0x05002000{
                                clock-frequency = <400000>;
                                pinctrl-0 = <&twi0_pins_a>;
                                pinctrl-1 = <&twi0_pins_b>;
                                status = "disabled";
                                /* audio: add ac108 capture */
                                /*
                                ac108@3B {
                                        compatible = "Allwinner,MicArray_0";
                                        device_type = "MicArray_0";
                                        reg = <0x3B>;
                                        regulator_used = <0x0>;
                                        power_gpio_used = <0x0>;
                                        reset_gpio_used = <0x0>;
                                        twi_bus = <0x1>;
                                        pga_gain = <0x1F>;
                                        slot_width = <0x20>;
                                        lrck_period = <0x80>;
                                        ref_pga_used = <0x1>;
                                        ref_pga_gain = <0x10>;
                                        ref_channel = <0x3>;
                                        debug_mode = <0x0>;
                                };
                                */
        
                                /*ctp {
                                        compatible = "allwinner,goodix";
                                        reg = <0x5d>;
                                        device_type = "ctp";
                                        status = "disabled";
                                        ctp_twi_id = <0x0>;
                                        ctp_twi_addr = <0x5d>;
                                        ctp_screen_max_x = <0x500>;
                                        ctp_screen_max_y = <0x320>;
                                        ctp_revert_x_flag = <0x0>;
                                        ctp_revert_y_flag = <0x0>;
                                        ctp_exchange_x_y_flag = <0x0>;
                                        ctp_int_port = <&pio PB 7 6 0xffffffff 0xffffffff 0>;
                                        ctp_wakeup = <&pio PB 8 1 0xffffffff 0xffffffff 1>;
                                        ctp-supply = <>;
                                        ctp_power_ldo_vol = <3300>;
                                };*/
                        };
        
                        twi1: twi@0x05002400{
                                clock-frequency = <200000>;
                                pinctrl-0 = <&twi1_pins_a>;
                                pinctrl-1 = <&twi1_pins_b>;
                                status = "disabled";
        /*
                                ctp {
                                        compatible = "allwinner,goodix";
                                        ctp_name = "gt9xxnew_ts";
                                        reg = <0x5d>;
                                        device_type = "ctp";
                                        status = "okay";
                                        ctp_twi_id = <0x1>;
                                        ctp_twi_addr = <0x5d>;
                                        ctp_screen_max_x = <0x500>;
                                        ctp_screen_max_y = <0x320>;
                                        ctp_revert_x_flag = <0x0>;
                                        ctp_revert_y_flag = <0x0>;
                                        ctp_exchange_x_y_flag = <0x0>;
                                        ctp_int_port = <&pio PI 0 6 0xffffffff 0xffffffff 0>;
                                        ctp_wakeup = <&pio PI 1 1 0xffffffff 0xffffffff 1>;
                                        ctp-supply = <>;
                                        ctp_power_ldo_vol = <3300>;
                                };
        */
                        };
        
                        twi2: twi@0x05002800{
                                clock-frequency = <200000>;
                                pinctrl-0 = <&twi2_pins_a>;
                                pinctrl-1 = <&twi2_pins_b>;
                                status = "disabled";
                        };
        
                        twi3: twi@0x05002c00{
                                clock-frequency = <200000>;
                                pinctrl-0 = <&twi3_pins_a>;
                                pinctrl-1 = <&twi3_pins_b>;
                                status = "disabled";
                        };
        
                        twi5: twi@0x05003400{
                                clock-frequency = <400000>;
                                pinctrl-0 = <&twi5_pins_a>;
                                pinctrl-1 = <&twi5_pins_b>;
                                pinctrl-names = "default", "sleep";
                                status = "okay";
        /*
                                ft6x06@48 {
                                        compatible = "focaltech,ft6236";
                                        reg = <0x48>;
                                        interrupt-parent = <&pio>;
                                        interrupts = <PJ 8 IRQ_TYPE_LEVEL_LOW>;
                                        reset-gpios = <&pio PJ 9 1 0xffffffff 0xffffffff 1>;
                                        touchscreen-size-x = <720>;
                                        touchscreen-size-y = <720>;
        //                              touchscreen-inverted-x;
        //                              touchscreen-swapped-x-y;
                                        status = "disabled";
                                };
        */
        
                                ctp {
                                        compatible = "allwinner,goodix";
                                        ctp_name = "gt9xxnew_ts";
                                        reg = <0x14>;
                                        device_type = "ctp";
                                        status = "okay";
                                        ctp_twi_id = <0x1>;
                                        ctp_twi_addr = <0x14>;
                                        ctp_screen_max_x = <480>;
                                        ctp_screen_max_y = <480>;
                                        ctp_revert_x_flag = <0x0>;
                                        ctp_revert_y_flag = <0x0>;
                                        ctp_exchange_x_y_flag = <0x0>;
                                        ctp_int_port = <&pio PJ 8 6 0xffffffff 0xffffffff 0>;
                                        ctp_wakeup = <&pio PJ 9 1 0xffffffff 0xffffffff 1>;
                                        ctp-supply = <>;
                                        ctp_power_ldo_vol = <3300>;
                                };
        
                        };
        
                        twi6: s_twi@0x07081400{
                                clock-frequency = <200000>;
                                pinctrl-0 = <&s_twi0_pins_a>;
                                pinctrl-1 = <&s_twi0_pins_b>;
                                twi_drv_used = <1>;
                                status = "disabled";
                                no_suspend = <1>;
                        };
        
                        standby_param: standby_param {
                                vdd-cpu = <0x00000006>;
                                vdd-sys = <0x00000008>;
                                vcc-pll = <0x00000100>;
        
                                osc24m-on = <0x0>;
                        };
        
                        twi7: s_twi@0x07081800{
                                clock-frequency = <200000>;
                                pinctrl-0 = <&s_twi1_pins_a>;
                                pinctrl-1 = <&s_twi1_pins_b>;
                                status = "disabled";
                        };
        
                        spi0: spi@05010000 {
                                pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
                                pinctrl-1 = <&spi0_pins_c>;
                                spi_slave_mode = <0>;
                                status = "disabled";
                                spi_board0 {
                                        device_type = "spi_board0";
                                        compatible = "rohm,dh2228fv";
                                        spi-max-frequency = <0x5f5e100>;
                                        reg = <0x0>;
                                        spi-rx-bus-width = <0x1>;
                                        spi-tx-bus-width = <0x1>;
                                        status = "disabled";
                                };
                        };
        
                        spi1: spi@05011000 {
                                pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
                                pinctrl-1 = <&spi1_pins_c>;
                                spi_slave_mode = <0>;
                                status = "disabled";
                                spi_board1 {
                                        device_type = "spi_board1";
                                        compatible = "rohm,dh2228fv";
                                        spi-max-frequency = <0x5f5e100>;
                                        reg = <0x0>;
                                        spi-rx-bus-width = <0x1>;
                                        spi-tx-bus-width = <0x1>;
                                        status = "disabled";
                                };
                        };
        
                        spi2: spi@05012000 {
                                pinctrl-0 = <&spi2_pins_a &spi2_pins_b>;
                                pinctrl-1 = <&spi2_pins_c>;
                                spi_slave_mode = <0>;
                                status = "disabled";
                                spi_board1 {
                                        device_type = "spi_board2";
                                        compatible = "rohm,dh2228fv";
                                        spi-max-frequency = <0x5f5e100>;
                                        reg = <0x0>;
                                        spi-rx-bus-width = <0x1>;
                                        spi-tx-bus-width = <0x1>;
                                        status = "disabled";
                                };
                        };
        
                        pwm0: pwm0@0300a000 {
                                pinctrl-names = "active", "sleep";
                                pinctrl-0 = <&pwm0_pin_a>;
                                pinctrl-1 = <&pwm0_pin_b>;
                        };
        
                        pwm1: pwm1@0300a000 {
                                pinctrl-names = "active", "sleep";
                                pinctrl-0 = <&pwm1_pin_a>;
                                pinctrl-1 = <&pwm1_pin_b>;
                        };
        
                        pwm2: pwm2@0300a000 {
                                pinctrl-names = "active", "sleep";
                                pinctrl-0 = <&pwm2_pin_a>;
                                pinctrl-1 = <&pwm2_pin_b>;
                        };
        
                        pwm7: pwm7@0300a000 {
                                pinctrl-names = "active", "sleep";
                                pinctrl-0 = <&pwm7_pin_a>;
                                pinctrl-1 = <&pwm7_pin_b>;
                        };
        
                        pwm8: pwm8@0300a000 {
                                pinctrl-names = "active", "sleep";
                                pinctrl-0 = <&pwm8_pin_a>;
                                pinctrl-1 = <&pwm8_pin_b>;
                        };
        
                        ledc: ledc@0x05018000 {
                                pinctrl-0 = <&ledc_pins_a>;
                                pinctrl-1 = <&ledc_pins_b>;
                                status    = "disabled";
                        };
        
                        gpadc:gpadc{
                                channel_num = <1>;
                                channel_select = <0x01>;
                                channel_data_select = <0>;
                                channel_compare_select = <0x01>;
                                channel_cld_select = <0x01>;
                                channel_chd_select = <0>;
                                channel0_compare_lowdata = <1700000>;
                                channel0_compare_higdata = <1200000>;
                                key_cnt = <5>;
                                key0_vol = <115>;
                                key0_val = <115>;
                                key1_vol = <240>;
                                key1_val = <114>;
                                key2_vol = <360>;
                                key2_val = <139>;
                                key3_vol = <480>;
                                key3_val = <28>;
                                key4_vol = <600>;
                                key4_val = <102>;
                                status = "okay";
                        };
        
                        sdc2: sdmmc@04022000 {
                                non-removable;
                                bus-width = <8>;
                                mmc-ddr-1_8v;
                                mmc-hs200-1_8v;
                                mmc-hs400-1_8v;
                                no-sdio;
                                no-sd;
                                cap-mmc-highspeed;
                                sunxi-power-save-mode;
                                sunxi-dis-signal-vol-sw;
                                max-frequency = <100000000>;
                                vmmc-supply = <>;
                                vqmmc-supply = <>;
                                status = "okay";
                        };
        
                        sdc0: sdmmc@04020000 {
                                bus-width = <4>;
                                cd-gpios = <&pio PF 6 6 1 3 0xffffffff>;
                                /*non-removable;*/
                                /*broken-cd;*/
                                /*cd-inverted*/
                                /*data3-detect;*/
                                /*card-pwr-gpios = <&pio PH 14 1 1 2 0xffffffff>;*/
                                cd-used-24M;
                                cap-sd-highspeed;
                                sd-uhs-sdr50;
                                sd-uhs-ddr50;
                                sd-uhs-sdr104;
                                no-sdio;
                                no-mmc;
                                sunxi-power-save-mode;
                                /*sunxi-dis-signal-vol-sw;*/
                                max-frequency = <150000000>;
                                ctl-spec-caps = <0x8>;
                                vmmc-supply = <>;
                                vqmmc33sw-supply = <>;
                                vdmmc33sw-supply = <>;
                                vqmmc18sw-supply = <>;
                                vdmmc18sw-supply = <>;
                                status = "okay";
                        };
        
                        sdc1: sdmmc@04021000 {
                                bus-width = <4>;
                                no-mmc;
                                no-sd;
                                cap-sd-highspeed;
                                /*sd-uhs-sdr12*/
                                /*sd-uhs-sdr25*/
                                /*sd-uhs-sdr50;*/
                                /*sd-uhs-ddr50;*/
                                /*sd-uhs-sdr104*/
                                /*sunxi-power-save-mode;*/
                                /*sunxi-dis-signal-vol-sw;*/
                                cap-sdio-irq;
                                keep-power-in-suspend;
                                ignore-pm-notify;
                                max-frequency = <50000000>;
                                ctl-spec-caps = <0x8>;
                                status = "okay";
                        };
        
        /*
         *usb_used: usb controller enable. 0-disable, 1-enable.
         *usb_port_type: usb mode. 0-device, 1-host, 2-otg.
         *usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect.
         *usb_drv_vbus_gpio:USB DRY_VBUS pin config or "axp_ctrl"
         */
                        usbc0:usbc0@0 {
                                device_type = "usbc0";
                                usb_port_type = <0x2>;
                                usb_detect_type = <0x1>;
                                usb_id_gpio = <&pio PH 11 0 0 0xffffffff 0xffffffff>;
                                usb_det_vbus_gpio   = <&pio PH 12 0 0 0xffffffff 0xffffffff>;
                                usb_regulator_io = "nocare";
                                usb_wakeup_suspend = <0>;
                                usb_luns = <3>;
                                usb_serial_unique = <0>;
                                usb_serial_number = "20080411";
                                rndis_wceis = <1>;
                                status = "okay";
                        };
        
                        ehci0:ehci0-controller@0x05101000 {
                                drvvbus-supply = <&reg_usb1_vbus>;
                        };
        
                        ohci0:ohci0-controller@0x05101400 {
                                drvvbus-supply = <&reg_usb1_vbus>;
                        };
        
                        usbc1:usbc1@0 {
                                device_type = "usbc1";
                                usb_regulator_io = "nocare";
                                usb_wakeup_suspend = <1>;
                                wakeup-source;
                                status = "okay";
                        };
        
                        /* Audio Driver Modules */
                        codec:codec@0x05096000 {
                                /* MIC and headphone gain setting */
                                mic1gain        = <0x1F>;
                                mic2gain        = <0x1F>;
                                /* ADC/DAC DRC/HPF func enabled */
                                /* 0x1:DAP_HP_EN; 0x2:DAP_SPK_EN; 0x3:DAP_HPSPK_EN */
                                adcdrc_cfg      = <0x0>;
                                adchpf_cfg      = <0x0>;
                                dacdrc_cfg      = <0x0>;
                                dachpf_cfg      = <0x0>;
                                /* Volume about */
                                digital_vol     = <0x00>;
                                lineout_vol     = <0x1a>;
                                headphonegain   = <0x00>;
                                /* Pa enabled about */
                                pa_level        = <0x01>;
                                pa_msleep_time  = <0x78>;
        /*                      gpio-spk = <&pio PH 19 1 1 1 1>;*/
                                /* regulator about */
                                avcc-supply = <>;
                                status = "okay";
                        };
        
                        sndcodec:sound@0 {
                                noheadphonemic = <0x01>;
                                status = "okay";
                        };
        
                        spdif:spdif-controller@0x05094000{
                                status = "disabled";
                        };
        
                        sndspdif:sound@1{
                                status = "disabled";
                        };
        
                        dmic:dmic-controller@0x05095000{
                                status = "disabled";
                        };
        
                        snddmic:sound@2{
                                status = "disabled";
                        };
        
                        daudio0:daudio@0x05090000 {
                                mclk_div        = <0x01>;
                                frametype       = <0x00>;
                                tdm_config      = <0x01>;
                                sign_extend     = <0x00>;
                                tx_data_mode    = <0x00>;
                                rx_data_mode    = <0x00>;
                                msb_lsb_first   = <0x00>;
                                pcm_lrck_period = <0x80>;
                                audio_format    = <0x01>;
                                daudio_master   = <0x04>;
                                signal_inversion  = <0x01>;
                                slot_width_select = <0x20>;
                                status = "disabled";
                        };
        
                        snddaudio0:sound@3 {
                        /*
                                sunxi,snddaudio-codec = "ac108.0-003b";
                                sunxi,snddaudio-codec-dai = "ac108-pcm0";
                        */
                                status = "disabled";
                        };
        
                        daudio1:daudio@0x05091000 {
                                mclk_div        = <0x01>;
                                frametype       = <0x00>;
                                tdm_config      = <0x01>;
                                sign_extend     = <0x00>;
                                tx_data_mode    = <0x00>;
                                rx_data_mode    = <0x00>;
                                msb_lsb_first   = <0x00>;
                                pcm_lrck_period = <0x20>;
                                audio_format    = <0x01>;
                                daudio_master   = <0x04>;
                                signal_inversion  = <0x01>;
                                slot_width_select = <0x20>;
                                status = "disabled";
                        };
        
                        snddaudio1:sound@4 {
                                status = "disabled";
                        };
        
                        daudio2:daudio@0x05092000 {
                                mclk_div        = <0x01>;
                                frametype       = <0x00>;
                                tdm_config      = <0x01>;
                                sign_extend     = <0x00>;
                                tx_data_mode    = <0x00>;
                                rx_data_mode    = <0x00>;
                                msb_lsb_first   = <0x00>;
                                pcm_lrck_period = <0x20>;
                                audio_format    = <0x01>;
                                daudio_master   = <0x04>;
                                signal_inversion  = <0x01>;
                                slot_width_select = <0x20>;
                                status = "disabled";
                        };
        
                        snddaudio2:sound@5 {
                                status = "disabled";
                        };
        
                        daudio3:daudio@0x05093000 {
                                mclk_div        = <0x01>;
                                frametype       = <0x00>;
                                tdm_config      = <0x01>;
                                sign_extend     = <0x00>;
                                tx_data_mode    = <0x00>;
                                rx_data_mode    = <0x00>;
                                msb_lsb_first   = <0x00>;
                                pcm_lrck_period = <0x20>;
                                audio_format    = <0x01>;
                                daudio_master   = <0x04>;
                                signal_inversion  = <0x01>;
                                slot_width_select = <0x20>;
                                status = "disabled";
                        };
        
                        snddaudio3:sound@6 {
                                status = "disabled";
                        };
                        vind0:vind@0 {
                                vind0_clk = <336000000>;
                                vind0_isp = <300000000>;
                                status = "okay";
        
                                actuator0:actuator@0 {
                                        device_type = "actuator0";
                                        actuator0_name = "ad5820_act";
                                        actuator0_slave = <0x18>;
                                        actuator0_af_pwdn = <>;
                                        actuator0_afvdd = "afvcc-csi";
                                        actuator0_afvdd_vol = <2800000>;
                                        status = "disabled";
                                };
                                flash0:flash@0 {
                                        device_type = "flash0";
                                        flash0_type = <2>;
                                        flash0_en = <>;
                                        flash0_mode = <>;
                                        flash0_flvdd = "";
                                        flash0_flvdd_vol = <>;
                                        device_id = <0>;
                                        status = "disabled";
                                };
                                sensor0:sensor@0 {
                                        device_type = "sensor0";
                                        sensor0_mname = "imx278_mipi";
                                        sensor0_twi_cci_id = <2>;
                                        sensor0_twi_addr = <0x20>;
                                        sensor0_mclk_id = <0>;
                                        sensor0_pos = "rear";
                                        sensor0_isp_used = <1>;
                                        sensor0_fmt = <1>;
                                        sensor0_stby_mode = <0>;
                                        sensor0_vflip = <0>;
                                        sensor0_hflip = <0>;
                                        sensor0_iovdd-supply = <>;
                                        sensor0_iovdd_vol = <1800000>;
                                        sensor0_avdd-supply = <>;
                                        sensor0_avdd_vol = <2800000>;
                                        sensor0_dvdd-supply = <>;
                                        sensor0_dvdd_vol = <1200000>;
                                        sensor0_power_en = <>;
                                        sensor0_reset = <&pio PE 7 1 0 1 0>;
                                        sensor0_pwdn = <&pio PE 6 1 0 1 0>;
                                        status  = "disabled";
                                };
                                sensor1:sensor@1 {
                                        device_type = "sensor1";
                                        sensor1_mname = "imx386_mipi";
                                        sensor1_twi_cci_id = <3>;
                                        sensor1_twi_addr = <0x20>;
                                        sensor1_mclk_id = <1>;
                                        sensor1_pos = "front";
                                        sensor1_isp_used = <1>;
                                        sensor1_fmt = <1>;
                                        sensor1_stby_mode = <0>;
                                        sensor1_vflip = <0>;
                                        sensor1_hflip = <0>;
                                        sensor1_iovdd-supply = <>;
                                        sensor1_iovdd_vol = <1800000>;
                                        sensor1_avdd-supply = <>;
                                        sensor1_avdd_vol = <2800000>;
                                        sensor1_dvdd-supply = <>;
                                        sensor1_dvdd_vol = <>;
                                        sensor1_power_en = <>;
                                        sensor1_reset = <&pio PE 9 1 0 1 0>;
                                        sensor1_pwdn = <&pio PE 8 1 0 1 0>;
                                        status  = "disabled";
                                };
                                vinc0:vinc@0 {
                                        vinc0_csi_sel = <0>;
                                        vinc0_mipi_sel = <0>;
                                        vinc0_isp_sel = <0>;
                                        vinc0_isp_tx_ch = <0>;
                                        vinc0_tdm_rx_sel = <0>;
                                        vinc0_rear_sensor_sel = <0>;
                                        vinc0_front_sensor_sel = <1>;
                                        vinc0_sensor_list = <0>;
                                        status = "disabled";
                                };
                                vinc1:vinc@1 {
                                        vinc1_csi_sel = <0>;
                                        vinc1_mipi_sel = <0>;
                                        vinc1_isp_sel = <0>;
                                        vinc1_isp_tx_ch = <0>;
                                        vinc1_tdm_rx_sel = <0>;
                                        vinc1_rear_sensor_sel = <0>;
                                        vinc1_front_sensor_sel = <1>;
                                        vinc1_sensor_list = <0>;
                                        status = "disabled";
                                };
                                vinc2:vinc@2 {
                                        vinc2_csi_sel = <1>;
                                        vinc2_mipi_sel = <1>;
                                        vinc2_isp_sel = <1>;
                                        vinc2_isp_tx_ch = <0>;
                                        vinc2_tdm_rx_sel = <1>;
                                        vinc2_rear_sensor_sel = <0>;
                                        vinc2_front_sensor_sel = <1>;
                                        vinc2_sensor_list = <0>;
                                        status = "disabled";
                                };
                                vinc3:vinc@3 {
                                        vinc3_csi_sel = <1>;
                                        vinc3_mipi_sel = <1>;
                                        vinc3_isp_sel = <1>;
                                        vinc3_isp_tx_ch = <0>;
                                        vinc3_tdm_rx_sel = <0xff>;
                                        vinc3_rear_sensor_sel = <0>;
                                        vinc3_front_sensor_sel = <1>;
                                        vinc3_sensor_list = <0>;
                                        status = "disabled";
                                };
                        };
        /*----------------------------------------------------------------------------------
        disp init configuration
        
        disp_mode             (0:screen0<screen0,fb0>)
        screenx_output_type   (0:none; 1:lcd; 2:tv; 3:hdmi;5:vdpo)
        screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
                              (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
        screenx_output_format (for hdmi, 0:RGB 1:yuv444 2:yuv422 3:yuv420)
        screenx_output_bits   (for hdmi, 0:8bit 1:10bit 2:12bit 2:16bit)
        screenx_output_eotf   (for hdmi, 0:reserve 4:SDR 16:HDR10 18:HLG)
        screenx_output_cs     (for hdmi, 0:undefined  257:BT709 260:BT601  263:BT2020)
        screenx_output_dvi_hdmi (for hdmi, 0:undefined 1:dvi mode 2:hdmi mode)
        screen0_output_range   (for hdmi, 0:default 1:full 2:limited)
        screen0_output_scan    (for hdmi, 0:no data 1:overscan 2:underscan)
        screen0_output_aspect_ratio  (for hdmi, 8-same as original picture 9-4:3 10-16:9 11-14:9)
        fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
        fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
        fb0_scaler_mode_enable(scaler mode enable, used FE)
        fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
        lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
        lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
        lcd0_contrast         (LCD contrast, 0~100)
        lcd0_saturation       (LCD saturation, 0~100)
        lcd0_hue              (LCD hue, 0~100)
        framebuffer software rotation setting:
        disp_rotation_used:   (0:disable; 1:enable,you must set fbX_width to lcd_y,
        set fbX_height to lcd_x)
        degreeX:              (X:screen index; 0:0 degree; 1:90 degree; 3:270 degree)
        degreeX_Y:            (X:screen index; Y:layer index 0~15; 0:0 degree; 1:90 degree; 3:270 degree)
        devX_output_type : config output type in bootGUI framework in UBOOT-2018.
                                           (0:none; 1:lcd; 2:tv; 4:hdmi;)
        devX_output_mode : config output resolution(see include/video/sunxi_display2.h) of bootGUI framework in UBOOT-2018
        devX_screen_id   : config display index of bootGUI framework in UBOOT-2018
        devX_do_hpd      : whether do hpd detectation or not in UBOOT-2018
        chn_cfg_mode     : Hardware DE channel allocation config. 0:single display with 6
                                           channel, 1:dual display with 4 channel in main display and 2 channel in second
                           display, 2:dual display with 3 channel in main display and 3 channel in second
                           in display.
        ----------------------------------------------------------------------------------*/
                        disp: disp@06000000 {
                                disp_init_enable         = <1>;
                                disp_mode                = <1>;
        
                                screen0_output_type      = <1>;
                                screen0_output_mode      = <4>;
        
                                screen0_output_format    = <0>;
                                screen0_output_bits      = <0>;
                                screen0_output_eotf      = <4>;
                                screen0_output_cs        = <257>;
                                screen0_output_dvi_hdmi  = <2>;
                                screen0_output_range     = <2>;
                                screen0_output_scan      = <0>;
                                screen0_output_aspect_ratio = <8>;
        
                                screen1_output_type      = <1>;
                                screen1_output_mode      = <4>;
        
                                screen1_output_format    = <0>;
                                screen1_output_bits      = <0>;
                                screen1_output_eotf      = <4>;
                                screen1_output_cs        = <257>;
                                screen1_output_dvi_hdmi  = <2>;
                                screen1_output_range     = <2>;
                                screen1_output_scan      = <0>;
                                screen1_output_aspect_ratio = <8>;
        
                                dev0_output_type         = <1>;
                                dev0_output_mode         = <4>;
                                dev0_screen_id           = <0>;
                                dev0_do_hpd              = <0>;
        
                                dev1_output_type         = <1>;
                                dev1_output_mode         = <4>;
                                dev1_screen_id           = <1>;
                                dev1_do_hpd              = <0>;
        
                                def_output_dev           = <0>;
                                hdmi_mode_check          = <1>;
        
                                fb0_format               = <0>;
                                fb0_width                = <0>;
                                fb0_height               = <0>;
        
                                fb1_format               = <0>;
                                fb1_width                = <0>;
                                fb1_height               = <0>;
                                chn_cfg_mode             = <1>;
        
                                disp_para_zone           = <1>;
                                /*VCC-LCD*/
                                dc1sw-supply = <>;
                                /*VCC-DSI*/
                                eldo3-supply = <>;
                                /*VCC-PD*/
                                dcdc1-supply = <>;
                                status        = "okay";
                        };
        /*----------------------------------------------------------------------------------
        ;lcd0 configuration
        
        ;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
        ;lcd_hv_if             0:Parallel RGB; 8:Serial RGB; 10:Dummy RGB; 11: RGB Dummy;12:CCIR656
        ;lcd_hv_clk_phase      0:0 degree;1:90 degree;2:180 degree;3:270 degree
        ;lcd_hv_sync_polarity  0:vs low,hs low; 1:vs high,hslow; 2:vs low,hs high; 3:vs high,hs high
        ;lcd_hv_syuv_seq       0:YUYV; 1:YVYU; 2:UYVY; 3:VYUY
        ;lcd_cpu_if            0:18bit/1 cycle parallel(RGB666); 4:16bit/1cycle parallel (RGB565)
        ;                      6:18bit/3 cycle parallel(RGB666); 7:16bit/2cycle parallel (RGB565)
        ;lcd_cpu_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
        ;lcd_dsi_if            0:video mode; 1: Command mode; 2:video burst mode
        ;lcd_dsi_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
        ;lcd_x:                lcd horizontal resolution
        ;lcd_y:                lcd vertical resolution
        ;lcd_width:            width of lcd in mm
        ;lcd_height:           height of lcd in mm
        ;lcd_dclk_freq:        in MHZ unit
        ;lcd_pwm_freq:         in HZ unit
        ;lcd_pwm_pol:          lcd backlight PWM polarity
        ;lcd_pwm_max_limit     lcd backlight PWM max limit(<=255)
        ;lcd_hbp:              hsync back porch(pixel) + hsync plus width(pixel);
        ;lcd_ht:               hsync total cycle(pixel)
        ;lcd_vbp:              vsync back porch(line) + vysnc plus width(line)
        ;lcd_vt:               vysnc total cycle(line)
        ;lcd_hspw:             hsync plus width(pixel)
        ;lcd_vspw:             vysnc plus width(pixel)
        ;lcd_lvds_if:          0:single link;  1:dual link(odd and even); 2:dual link(same pixel)
        ;lcd_lvds_colordepth:  0:8bit; 1:6bit
        ;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
        ;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
        ;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
        ;                      8~11bit:dclk phase; 12~15bit:de phase)
        ;lcd_gamma_en          lcd gamma correction enable
        ;lcd_bright_curve_en   lcd bright curve correction enable
        ;lcd_cmap_en           lcd color map function enable
        ;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
        ;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
        ;                      decrease it while lcd is not bright enough; increase while lcd is too bright
        ;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
        ;Pin setting for special function ie.LVDS, RGB data or vsync
        ;   name(donot care) = port:PD12<pin function><pull up or pull down><drive ability><output level>
        ;Pin setting for gpio:
        ;   lcd_gpio_X     = port:PD12<pin function><pull up or pull down><drive ability><output level>
        ;Pin setting for backlight enable pin
        ;   lcd_bl_en     = port:PD12<pin function><pull up or pull down><drive ability><output level>
        ;fsync setting, pulse to csi
        ;lcd_fsync_en          (0:disable fsync,1:enable)
        ;lcd_fsync_act_time    (active time of fsync, unit:pixel)
        ;lcd_fsync_dis_time    (disactive time of fsync, unit:pixel)
        ;lcd_fsync_pol         (0:positive;1:negative)
        ;gpio config: <&pio for cpu or &r_pio for cpus, port, port num, pio function,
        pull up or pull down(default 0), driver level(default 1), data>
        ;For dual link lvds: use lvds2link_pins_a  and lvds2link_pins_b instead
        ;For rgb24: use rgb24_pins_a  and rgb24_pins_b instead
        ;For lvds1: use lvds1_pins_a  and lvds1_pins_b instead
        ;For lvds0: use lvds0_pins_a  and lvds0_pins_b instead
        ;----------------------------------------------------------------------------------*/
                        lcd0: lcd0@01c0c000 {
                lcd_used            = <1>;
        
                lcd_driver_name     = "tft08006";
                lcd_backlight       = <100>;
                lcd_if              = <4>;
        
                lcd_x               = <800>;
                lcd_y               = <1280>;
                lcd_width           = <52>;
                lcd_height          = <52>;
                lcd_dclk_freq       = <70>;
        
                lcd_pwm_used        = <0>;
                lcd_pwm_ch          = <0>;
                lcd_pwm_freq        = <1000>;
                lcd_pwm_pol         = <0>;
                lcd_pwm_max_limit   = <255>;
        
                lcd_hbp             = <32>;
                lcd_ht              = <868>;
                lcd_hspw            = <4>;
                lcd_vbp             = <12>;
                lcd_vt              = <1311>;
                lcd_vspw            = <4>;
        
                lcd_dsi_if          = <0>;
                lcd_dsi_lane        = <4>;
                lcd_lvds_if         = <0>;
                lcd_lvds_colordepth = <0>;
                lcd_lvds_mode       = <0>;
                lcd_frm             = <0>;
                lcd_hv_clk_phase    = <0>;
                lcd_hv_sync_polarity= <0>;
                lcd_io_phase        = <0x0000>;
                lcd_gamma_en        = <0>;
                lcd_bright_curve_en = <0>;
                lcd_cmap_en         = <0>;
                lcd_fsync_en        = <0>;
                lcd_fsync_act_time  = <1000>;
                lcd_fsync_dis_time  = <1000>;
                lcd_fsync_pol       = <0>;
        
                deu_mode            = <0>;
                lcdgamma4iep        = <22>;
                smart_color         = <90>;
        
                                lcd_pin_power;
                                lcd_power;
                                /*lcd_bl_en = <&pio PB 8 1 0 3 1>;*/
                                /*lcd_gpio_1 = <&pio PD 23 1 0 3 1>;*/
                                lcd_gpio_0 = <&pio PC 12 1 0 3 1>;
                                pinctrl-0 = <&dsi4lane_pins_a>;
                                pinctrl-1 = <&dsi4lane_pins_b>;
        
                                status = "okay";
        
                        };
        
        
                        lcd1: lcd1@01c0c001 {
                                lcd_used                = <1>;
                                lcd_driver_name         = "st7701s_rgb";
        
                                lcd_if                  = <0>;
                                lcd_hv_if               = <0>;
        
                                lcd_width               = <70>;
                                lcd_height              = <72>;
                                lcd_x                   = <480>;
                                lcd_y                   = <480>;
                                lcd_dclk_freq           = <11>;
                                lcd_hbp                 = <60>;
                                lcd_ht                  = <612>;
                                lcd_hspw                = <12>;
                                lcd_vbp                 = <18>;
                                lcd_vt                  = <520>;
                                lcd_vspw                = <4>;
        
                                lcd_backlight           = <250>;// 0 ~ 255
                                lcd_pwm_used            = <1>;
                                lcd_pwm_ch              = <8>;
                                lcd_pwm_freq            = <20000>;
                                lcd_pwm_pol             = <1>;
                                lcd_pwm_max_limit   = <255>;
                                lcd_bright_curve_en = <0>;
        
                                lcd_frm                 = <1>;
                                lcd_io_phase            = <0x0000>;
                                lcd_gamma_en            = <0>;
                                lcd_cmap_en             = <0>;
                                lcd_hv_clk_phase        = <1>;
                                lcd_hv_sync_polarity= <0>;
                                lcd_rb_swap         = <0>;
        
                                //lcd_bl_en           = <&pio PI 7 1 1 3 1>;
                                lcd_gpio_0              = <&pio PJ 16 1 1 3 1>;//reset
                                lcd_gpio_1              = <&pio PJ 17 1 1 3 1>;//cs
                                lcd_gpio_2              = <&pio PC  2 1 1 3 1>;//sdi
                                lcd_gpio_3              = <&pio PC 12 1 1 3 1>;//scl
        
        /*
                                lcd_gpio_2              = <&r_pio PL 2 1 1 3 1>;//sdi
                                lcd_gpio_3              = <&r_pio PL 3 1 1 3 1>;//scl
        */
                                lcd_pin_power;
                                lcd_power;
        
                                pinctrl-0                       = <&rgb18_pins_c>;
                                pinctrl-1                       = <&rgb18_pins_d>;
        
                                status = "okay";
                        };
        
        
                        wlan: wlan@0 {
                                compatible    = "allwinner,sunxi-wlan";
                                pinctrl-0;
                                pinctrl-names;
                                wlan_busnum   = <0x1>;
                                wlan_power;
                                wlan_io_regulator;
                                wlan_regon = <&r_pio PL 10 1 0xffffffff 0xffffffff 0>;
                                wlan_hostwake = <&r_pio PL 7 1 0xffffffff 0xffffffff 0>;
                                chip_en;
                                power_en;
                                status        = "okay";
                        };
        
                        bt: bt@0 {
                                compatible    = "allwinner,sunxi-bt";
                                clocks        = <&clk_losc_out>, <&clk_dcxo_out>;
                                bt_power;
                                bt_io_regulator;
                                bt_rst_n      = <&r_pio PL 5 1 0xffffffff 0xffffffff 0>;
                                bt_wake = <&r_pio PL 4 1 0xffffffff 0xffffffff 0>;
                                bt_hostwake = <&r_pio PL 6 1 0xffffffff 0xffffffff 0>;
                                status        = "okay";
                        };
        
        
                        modem: modem@0 {
                                compatible    = "allwinner,sunxi-modem";
                                modem_power;
                                modem_rst     = <&pio PB 3 1 0xffffffff 0xffffffff 1>;
                                status        = "disabled";
                        };
        
                        btlpm: btlpm@0 {
                                compatible  = "allwinner,sunxi-btlpm";
                                uart_index  = <0x1>;
                                bt_wake     = <&r_pio PL 4 1 0xffffffff 0xffffffff 1>;//AP-WAKE-BT
                                bt_hostwake = <&r_pio PL 6 1 0xffffffff 0xffffffff 1>;//BT-WAKE-AP
                                status      = "okay";
        
                        };
        /*
                        btlpm: btlpm@0 {
                                compatible  = "allwinner,sunxi-btlpm";
                                uart_index  = <0x1>;
                                bt_wake     = <&r_pio PL 3 1 0xffffffff 0xffffffff 1>;
                                bt_hostwake = <&r_pio PL 4 6 0xffffffff 0xffffffff 1>;
                                status      = "disabled";
        
                        };
        */
                        addr_mgt: addr_mgt@0 {
                                compatible     = "allwinner,sunxi-addr_mgt";
                                type_addr_wifi = <0x0>;
                                type_addr_bt   = <0x0>;
                                type_addr_eth  = <0x0>;
                                status         = "okay";
                        };
        
                        uart0: uart@05000000 {
                                uart-supply = <>;
                        };
        
                        uart1: uart@05000400 {
                                status = "okay";
                        };
        
                        uart5: uart@05001400 {
                                status = "disabled";
                        };
        
                        uart6: uart@05001800 {
                                status = "disabled";
                                rs485-en = <&pio PI 11 1 1 0xffffffff 1>;
                        };
        
                        ncs8801s {
                                status = "disabled";
                                ncs8801s_reset = <&pio PI 14 1 0xffffffff 0xffffffff 0>;
                        };
                };
        
                gpu: gpu@0x01800000 {
                                gpu_idle = <0>;
                                dvfs_status = <1>;
                                pll_rate = <504000>;
                                independent_power = <0>;
                                operating-points = <
                                         /* KHz   uV */
                                        504000 950000
                                        472500 950000
                                        441000 950000
                                        252000 950000
                                 >;
                                 gpu-supply = <>;
                };
                opp_dvfs_table:opp_dvfs_table {
                        cluster_num = <1>;
                        opp_table_count = <1>;
                };
        };
        
        &cpu0 {
                cpu-supply = <>;
        };
        

        tft08006.c / tft08006.h 是从 D1 SDK 里面复制的。

        1 Reply Last reply Reply Quote Share 0
        • Y
          yixiuge LV 5 last edited by yixiuge

          微信图片_20220628190130.jpg 微信图片_20220628190120.jpg

          搞定一个MIPI显示屏.

          board.dts

          
          /*
           * Allwinner Technology CO., Ltd. sun50iw10p1 soc board.
           *
           * soc board support.
           */
          
          /dts-v1/;
          #include <dt-bindings/input/input.h>
          #include "sun50iw10p1.dtsi"
          
          /{
                  model = "sun50iw10";
                  compatible = "allwinner,a3", "arm,sun50iw10p1";
          
                  reg_usb1_vbus: usb1-vbus {
                          compatible = "regulator-fixed";
                          gpio = <&pio PI 12 1 2 0 1>;
                          regulator-name = "usb1-vbus";
                          regulator-min-microvolt = <5000000>;
                          regulator-max-microvolt = <5000000>;
                          enable-active-high;
                  };
          
                  reg_3v3: vdd_3v3 {
                  compatible = "regulator-fixed";
                  regulator-name = "vdd_3v3";
                  regulator-min-microvolt = <3300000>;
                  regulator-max-microvolt = <3300000>;
                  regulator-enable-ramp-delay = <1000>;
                  enable-active-high;
              };
          
                  soc@03000000 {
          
                          r_pio: pinctrl@07022000 {
          
                                  s_twi0_pins_a: s_twi0@0 {
                                          allwinner,pins = "PL0", "PL1";
                                          allwinner,pname = "s_twi0_scl", "s_twi0_sda";
                                          allwinner,function = "s_twi0";
                                          allwinner,muxsel = <2>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <1>;
                                  };
          
                                  s_twi0_pins_b: s_twi0@1 {
                                          allwinner,pins = "PL0", "PL1";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
                                  s_twi1_pins_a: s_twi1@0 {
                                          allwinner,pins = "PL8", "PL9";
                                          allwinner,pname = "s_twi1_scl", "s_twi1_sda";
                                          allwinner,function = "s_twi1";
                                          allwinner,muxsel = <2>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <1>;
                                  };
          
                                  s_twi1_pins_b: s_twi1@1 {
                                          allwinner,pins = "PL8", "PL9";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
                          };
                          pio: pinctrl@0300b000 {
                                  twi0_pins_a: twi0@0 {
                                          allwinner,pins = "PD22", "PD23";
                                          allwinner,pname = "twi0_scl", "twi0_sda";
                                          allwinner,function = "twi0";
                                          allwinner,muxsel = <4>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi0_pins_b: twi0@1 {
                                          allwinner,pins = "PD22", "PD23";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi1_pins_a: twi1@0 {
                                          allwinner,pins = "PB4", "PB5";
                                          allwinner,pname = "twi1_scl", "twi1_sda";
                                          allwinner,function = "twi1";
                                          allwinner,muxsel = <2>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi1_pins_b: twi1@1 {
                                          allwinner,pins = "PB4", "PB5";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi2_pins_a: twi2@0 {
                                          allwinner,pins = "PE1", "PE2";
                                          allwinner,pname = "twi2_scl", "twi2_sda";
                                          allwinner,function = "twi2";
                                          allwinner,muxsel = <2>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi2_pins_b: twi2@1 {
                                          allwinner,pins = "PE1", "PE2";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi3_pins_a: twi3@0 {
                                          allwinner,pins = "PE3", "PE4";
                                          allwinner,pname = "twi3_scl", "twi3_sda";
                                          allwinner,function = "twi3";
                                          allwinner,muxsel = <2>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <1>;
                                  };
          
                                  twi3_pins_b: twi3@1 {
                                          allwinner,pins = "PE3", "PE4";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi5_pins_a: twi5@0 {
                                          allwinner,pins = "PI8", "PI9";
                                          allwinner,pname = "twi5_scl", "twi5_sda";
                                          allwinner,function = "twi5";
                                          allwinner,muxsel = <2>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  twi5_pins_b: twi5@1 {
                                          allwinner,pins = "PI8", "PI9";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  pwm0_pin_a: pwm0@0 {
                                          allwinner,pins = "PD23";
                                          allwinner,function = "pwm0";
                                          allwinner,muxsel = <0x02>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm0_pin_b: pwm0@1 {
                                          allwinner,pins = "PD23";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <0x07>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm1_pin_a: pwm1@0 {
                                          allwinner,pins = "PI0";
                                          allwinner,function = "pwm1";
                                          allwinner,muxsel = <0x04>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm1_pin_b: pwm1@1 {
                                          allwinner,pins = "PI0";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <0x07>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm2_pin_a: pwm2@0 {
                                          allwinner,pins = "PI1";
                                          allwinner,function = "pwm2";
                                          allwinner,muxsel = <0x04>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm2_pin_b: pwm2@1 {
                                          allwinner,pins = "PI1";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <0x07>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm3_pin_a: pwm3@0 {
                                          allwinner,pins = "PD21";
                                          allwinner,function = "pwm3";
                                          allwinner,muxsel = <0x02>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm3_pin_b: pwm3@1 {
                                          allwinner,pins = "PD21";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <0x07>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm7_pin_a: pwm7@0 {
                                          allwinner,pins = "PI6";
                                          allwinner,function = "pwm7";
                                          allwinner,muxsel = <0x04>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm7_pin_b: pwm7@1 {
                                          allwinner,pins = "PI6";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <0x07>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm8_pin_a: pwm8@0 {
                                          allwinner,pins = "PI7";
                                          allwinner,function = "pwm8";
                                          allwinner,muxsel = <0x04>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  pwm8_pin_b: pwm8@1 {
                                          allwinner,pins = "PI7";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <0x07>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0xffffffff>;
                                  };
          
                                  ledc_pins_a: ledc@0 {
                                          allwinner,pins = "PH19";
                                          allwinner,function = "ledc";
                                          allwinner,muxsel = <5>;
                                  };
          
                                  ledc_pins_b: ledc@1 {
                                          allwinner,pins = "PH19";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                  };
          
                                  key_pj1: key_pj1@0 {
                                          allwinner,pins = "PJ1";
                                          allwinner,function = "gpio_in";
                                          allwinner,muxsel = <0x00>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <1>;
                                          allwinner,data = <0x1>;
                                  };
          
                                  usb1_vbus_pin_a: usb1_vbus_pin@0 {
                                          allwinner,pins = "PH10";
                                          allwinner,function = "gpio_out";
                                          allwinner,muxsel = <0x01>;
                                          allwinner,drive = <0x2>;
                                          allwinner,pull = <0>;
                                          allwinner,data = <0x0>;
                                  };
          
                                  spi0_pins_a: spi0@0 {
                                          allwinner,pins = "PC2", "PC4", "PC12", "PC15", "PC16";
                                          allwinner,pname = "spi0_mosi", "spi0_miso",
                                                            "spi0_sclk", "spi0_wp", "spi0_hold";
                                          allwinner,function = "spi0";
                                          allwinner,muxsel = <4>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  spi0_pins_b: spi0@1 {
                                          allwinner,pins = "PC3", "PC7";
                                          allwinner,pname = "spi0_cs0", "spi0_cs1";
                                          allwinner,function = "spi0";
                                          allwinner,muxsel = <4>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <1>;   /* only CS should be pulled up */
                                  };
          
                                  spi0_pins_c: spi0@2 {
                                          allwinner,pins = "PC2", "PC3", "PC4", "PC7", "PC12", "PC15", "PC16";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  spi1_pins_a: spi1@0 {
                                          allwinner,pins = "PD11", "PD12", "PD13";
                                          allwinner,pname = "spi1_sclk", "spi1_mosi",
                                                            "spi1_miso";
                                          allwinner,function = "spi1";
                                          allwinner,muxsel = <4>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  spi1_pins_b: spi1@1 {
                                          allwinner,pins = "PD10";
                                          allwinner,pname = "spi1_cs0";
                                          allwinner,function = "spi1";
                                          allwinner,muxsel = <4>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <1>;   /* only CS should be pulled up */
                                  };
          
                                  spi1_pins_c: spi1@2 {
                                          allwinner,pins = "PD10", "PD11", "PD12", "PD13";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  spi2_pins_a: spi2@0 {
                                          allwinner,pins = "PB1", "PB2", "PB3";
                                          allwinner,pname = "spi2_sclk", "spi2_mosi",
                                                            "spi2_miso";
                                          allwinner,function = "spi2";
                                          allwinner,muxsel = <3>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
          
                                  spi2_pins_b: spi2@1 {
                                          allwinner,pins = "PB0";
                                          allwinner,pname = "spi2_cs0";
                                          allwinner,function = "spi2";
                                          allwinner,muxsel = <3>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <1>;   /* only CS should be pulled up */
                                  };
          
                                  spi2_pins_c: spi2@2 {
                                          allwinner,pins = "PB0", "PB1", "PB2", "PB3";
                                          allwinner,function = "io_disabled";
                                          allwinner,muxsel = <7>;
                                          allwinner,drive = <1>;
                                          allwinner,pull = <0>;
                                  };
                          };
          
           rotary {
               compatible = "rotary-encoder";
               pinctrl-names = "default";
               /*pinctrl-0 = <&rotary_pins>;*/
               gpios = <&pio PJ 0 6 1 3 0xffffffff>, <&pio PJ 1 6 1 3 0xffffffff>; /* PJ0, PJ1 */
               linux,axis = <0>; /* REL_X */
               rotary-encoder,encoding = "gray";
               rotary-encoder,relative-axis;
           };
          
          
                 gpio_keys_polled {
                         compatible = "gpio-keys-polled";
                         pinctrl-names = "default";
                         pinctrl-0 = <&key_pj1>;
                         #address-cells = <1>;
                         #size-cells = <0>;
                         poll-interval = <100>;
          
                         button@0 {
                                 label = "mute";
                                 linux,code = <KEY_MUTE>;
                                 gpios = <&pio PJ 0 6 1 1 1>; //PJ0
                         };
          
                         button@1 {
                                 label = "power";
                                 linux,code = <KEY_POWER>;
                                 gpios = <&pio PJ 1 0 1 1 1>;
                         };
                 };
          
          
          
                          gpio_keys {
                                  device_type = "gpiokey";
                                  compatible = "gpio-keys";
          //                      pinctrl-names = "default";
          //                      pinctrl-0 = <&key_pj1>;
          //                      #address-cells = <1>;
          //                      #size-cells = <0>;
          //                      autorepeat;
                                  status = "disabled";
          
                                  power_key {
                                          label = "volume down";
                                          linux,code = <KEY_VOLUMEDOWN>;
                                  //      gpios = <&pio PJ 0 6 1 1 1>;
          //                              gpios = <&pio PJ 0 6 GPIO_ACTIVE_LOW>;
                                          gpios = <&pio PJ 1 0 1 0 1>;
          //                              debounce-interval = <100>;
          //                              wakeup-source;
                                          wakeup-source = <0x1>;
                                  };
          
                                  volume_down_key {
                                          label = "volume up";
                                          linux,code = <KEY_VOLUMEUP>;
          //                              gpios = <&pio PJ 1 6 1 1 1>;
          //                              gpios = <&pio PJ 1 GPIO_ACTIVE_LOW>;
                                          gpios = <&pio PJ 0 0 1 0 1>;
                                          //debounce-interval = <100>;
                                          wakeup-source = <0x1>;
                                  };
                  };
          
                          gmac0: eth@05020000 {
                                  phy-mode = "rgmii";
                                  use_ephy25m = <1>;
                                  tx-delay = <7>;
                                  rx-delay = <4>;
                                  phy-rst = <&pio PH 19 1 1 1 0>;
                                  status = "okay";
                          };
          
                          gmac1: eth@05030000 {
                                  phy-mode = "rgmii";
                                  use_ephy25m = <1>;
                                  tx-delay = <7>;
                                  rx-delay = <4>;
                                  gmac-mtu = <900>;
                                  phy-rst = <&pio PI 14 1 1 1 0>;
                                  /*
                                  gmac-power0-supply = <>;
                                  gmac-power0-vol = <3300000>;
                                  */
                                  status = "disabled";
                          };
          
                          twi0: twi@0x05002000{
                                  clock-frequency = <400000>;
                                  pinctrl-0 = <&twi0_pins_a>;
                                  pinctrl-1 = <&twi0_pins_b>;
                                  status = "disabled";
                                  /* audio: add ac108 capture */
                                  /*
                                  ac108@3B {
                                          compatible = "Allwinner,MicArray_0";
                                          device_type = "MicArray_0";
                                          reg = <0x3B>;
                                          regulator_used = <0x0>;
                                          power_gpio_used = <0x0>;
                                          reset_gpio_used = <0x0>;
                                          twi_bus = <0x1>;
                                          pga_gain = <0x1F>;
                                          slot_width = <0x20>;
                                          lrck_period = <0x80>;
                                          ref_pga_used = <0x1>;
                                          ref_pga_gain = <0x10>;
                                          ref_channel = <0x3>;
                                          debug_mode = <0x0>;
                                  };
                                  */
          
                                  /*ctp {
                                          compatible = "allwinner,goodix";
                                          reg = <0x5d>;
                                          device_type = "ctp";
                                          status = "disabled";
                                          ctp_twi_id = <0x0>;
                                          ctp_twi_addr = <0x5d>;
                                          ctp_screen_max_x = <0x500>;
                                          ctp_screen_max_y = <0x320>;
                                          ctp_revert_x_flag = <0x0>;
                                          ctp_revert_y_flag = <0x0>;
                                          ctp_exchange_x_y_flag = <0x0>;
                                          ctp_int_port = <&pio PB 7 6 0xffffffff 0xffffffff 0>;
                                          ctp_wakeup = <&pio PB 8 1 0xffffffff 0xffffffff 1>;
                                          ctp-supply = <>;
                                          ctp_power_ldo_vol = <3300>;
                                  };*/
                          };
          
                          twi1: twi@0x05002400{
                                  clock-frequency = <200000>;
                                  pinctrl-0 = <&twi1_pins_a>;
                                  pinctrl-1 = <&twi1_pins_b>;
                                  status = "disabled";
          /*
                                  ctp {
                                          compatible = "allwinner,goodix";
                                          ctp_name = "gt9xxnew_ts";
                                          reg = <0x5d>;
                                          device_type = "ctp";
                                          status = "okay";
                                          ctp_twi_id = <0x1>;
                                          ctp_twi_addr = <0x5d>;
                                          ctp_screen_max_x = <0x500>;
                                          ctp_screen_max_y = <0x320>;
                                          ctp_revert_x_flag = <0x0>;
                                          ctp_revert_y_flag = <0x0>;
                                          ctp_exchange_x_y_flag = <0x0>;
                                          ctp_int_port = <&pio PI 0 6 0xffffffff 0xffffffff 0>;
                                          ctp_wakeup = <&pio PI 1 1 0xffffffff 0xffffffff 1>;
                                          ctp-supply = <>;
                                          ctp_power_ldo_vol = <3300>;
                                  };
          */
                          };
          
                          twi2: twi@0x05002800{
                                  clock-frequency = <200000>;
                                  pinctrl-0 = <&twi2_pins_a>;
                                  pinctrl-1 = <&twi2_pins_b>;
                                  status = "disabled";
                          };
          
                          twi3: twi@0x05002c00{
                                  clock-frequency = <200000>;
                                  pinctrl-0 = <&twi3_pins_a>;
                                  pinctrl-1 = <&twi3_pins_b>;
                                  status = "disabled";
                          };
          
                          twi5: twi@0x05003400{
                                  clock-frequency = <400000>;
                                  pinctrl-0 = <&twi5_pins_a>;
                                  pinctrl-1 = <&twi5_pins_b>;
                                  pinctrl-names = "default", "sleep";
                                  status = "okay";
          /*
                                  ft6x06@48 {
                                          compatible = "focaltech,ft6236";
                                          reg = <0x48>;
                                          interrupt-parent = <&pio>;
                                          interrupts = <PJ 8 IRQ_TYPE_LEVEL_LOW>;
                                          reset-gpios = <&pio PJ 9 1 0xffffffff 0xffffffff 1>;
                                          touchscreen-size-x = <720>;
                                          touchscreen-size-y = <720>;
          //                              touchscreen-inverted-x;
          //                              touchscreen-swapped-x-y;
                                          status = "disabled";
                                  };
          */
          
                                  ctp {
                                          compatible = "allwinner,goodix";
                                          ctp_name = "gt9xxnew_ts";
                                          reg = <0x14>;
                                          device_type = "ctp";
                                          status = "okay";
                                          ctp_twi_id = <0x1>;
                                          ctp_twi_addr = <0x14>;
                                          ctp_screen_max_x = <480>;
                                          ctp_screen_max_y = <480>;
                                          ctp_revert_x_flag = <0x0>;
                                          ctp_revert_y_flag = <0x0>;
                                          ctp_exchange_x_y_flag = <0x0>;
                                          ctp_int_port = <&pio PJ 8 6 0xffffffff 0xffffffff 0>;
                                          ctp_wakeup = <&pio PJ 9 1 0xffffffff 0xffffffff 1>;
                                          ctp-supply = <>;
                                          ctp_power_ldo_vol = <3300>;
                                  };
          
                          };
          
                          twi6: s_twi@0x07081400{
                                  clock-frequency = <200000>;
                                  pinctrl-0 = <&s_twi0_pins_a>;
                                  pinctrl-1 = <&s_twi0_pins_b>;
                                  twi_drv_used = <1>;
                                  status = "disabled";
                                  no_suspend = <1>;
                          };
          
                          standby_param: standby_param {
                                  vdd-cpu = <0x00000006>;
                                  vdd-sys = <0x00000008>;
                                  vcc-pll = <0x00000100>;
          
                                  osc24m-on = <0x0>;
                          };
          
                          twi7: s_twi@0x07081800{
                                  clock-frequency = <200000>;
                                  pinctrl-0 = <&s_twi1_pins_a>;
                                  pinctrl-1 = <&s_twi1_pins_b>;
                                  status = "disabled";
                          };
          
                          spi0: spi@05010000 {
                                  pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
                                  pinctrl-1 = <&spi0_pins_c>;
                                  spi_slave_mode = <0>;
                                  status = "disabled";
                                  spi_board0 {
                                          device_type = "spi_board0";
                                          compatible = "rohm,dh2228fv";
                                          spi-max-frequency = <0x5f5e100>;
                                          reg = <0x0>;
                                          spi-rx-bus-width = <0x1>;
                                          spi-tx-bus-width = <0x1>;
                                          status = "disabled";
                                  };
                          };
          
                          spi1: spi@05011000 {
                                  pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
                                  pinctrl-1 = <&spi1_pins_c>;
                                  spi_slave_mode = <0>;
                                  status = "disabled";
                                  spi_board1 {
                                          device_type = "spi_board1";
                                          compatible = "rohm,dh2228fv";
                                          spi-max-frequency = <0x5f5e100>;
                                          reg = <0x0>;
                                          spi-rx-bus-width = <0x1>;
                                          spi-tx-bus-width = <0x1>;
                                          status = "disabled";
                                  };
                          };
          
                          spi2: spi@05012000 {
                                  pinctrl-0 = <&spi2_pins_a &spi2_pins_b>;
                                  pinctrl-1 = <&spi2_pins_c>;
                                  spi_slave_mode = <0>;
                                  status = "disabled";
                                  spi_board1 {
                                          device_type = "spi_board2";
                                          compatible = "rohm,dh2228fv";
                                          spi-max-frequency = <0x5f5e100>;
                                          reg = <0x0>;
                                          spi-rx-bus-width = <0x1>;
                                          spi-tx-bus-width = <0x1>;
                                          status = "disabled";
                                  };
                          };
          
                          pwm0: pwm0@0300a000 {
                                  pinctrl-names = "active", "sleep";
                                  pinctrl-0 = <&pwm0_pin_a>;
                                  pinctrl-1 = <&pwm0_pin_b>;
                          };
          
                          pwm1: pwm1@0300a000 {
                                  pinctrl-names = "active", "sleep";
                                  pinctrl-0 = <&pwm1_pin_a>;
                                  pinctrl-1 = <&pwm1_pin_b>;
                          };
          
                          pwm2: pwm2@0300a000 {
                                  pinctrl-names = "active", "sleep";
                                  pinctrl-0 = <&pwm2_pin_a>;
                                  pinctrl-1 = <&pwm2_pin_b>;
                          };
          
                          pwm7: pwm7@0300a000 {
                                  pinctrl-names = "active", "sleep";
                                  pinctrl-0 = <&pwm7_pin_a>;
                                  pinctrl-1 = <&pwm7_pin_b>;
                          };
          
                          pwm8: pwm8@0300a000 {
                                  pinctrl-names = "active", "sleep";
                                  pinctrl-0 = <&pwm8_pin_a>;
                                  pinctrl-1 = <&pwm8_pin_b>;
                          };
          
                          ledc: ledc@0x05018000 {
                                  pinctrl-0 = <&ledc_pins_a>;
                                  pinctrl-1 = <&ledc_pins_b>;
                                  status    = "disabled";
                          };
          
                          gpadc:gpadc{
                                  channel_num = <1>;
                                  channel_select = <0x01>;
                                  channel_data_select = <0>;
                                  channel_compare_select = <0x01>;
                                  channel_cld_select = <0x01>;
                                  channel_chd_select = <0>;
                                  channel0_compare_lowdata = <1700000>;
                                  channel0_compare_higdata = <1200000>;
                                  key_cnt = <5>;
                                  key0_vol = <115>;
                                  key0_val = <115>;
                                  key1_vol = <240>;
                                  key1_val = <114>;
                                  key2_vol = <360>;
                                  key2_val = <139>;
                                  key3_vol = <480>;
                                  key3_val = <28>;
                                  key4_vol = <600>;
                                  key4_val = <102>;
                                  status = "okay";
                          };
          
                          sdc2: sdmmc@04022000 {
                                  non-removable;
                                  bus-width = <8>;
                                  mmc-ddr-1_8v;
                                  mmc-hs200-1_8v;
                                  mmc-hs400-1_8v;
                                  no-sdio;
                                  no-sd;
                                  cap-mmc-highspeed;
                                  sunxi-power-save-mode;
                                  sunxi-dis-signal-vol-sw;
                                  max-frequency = <100000000>;
                                  vmmc-supply = <>;
                                  vqmmc-supply = <>;
                                  status = "okay";
                          };
          
                          sdc0: sdmmc@04020000 {
                                  bus-width = <4>;
                                  cd-gpios = <&pio PF 6 6 1 3 0xffffffff>;
                                  /*non-removable;*/
                                  /*broken-cd;*/
                                  /*cd-inverted*/
                                  /*data3-detect;*/
                                  /*card-pwr-gpios = <&pio PH 14 1 1 2 0xffffffff>;*/
                                  cd-used-24M;
                                  cap-sd-highspeed;
                                  sd-uhs-sdr50;
                                  sd-uhs-ddr50;
                                  sd-uhs-sdr104;
                                  no-sdio;
                                  no-mmc;
                                  sunxi-power-save-mode;
                                  /*sunxi-dis-signal-vol-sw;*/
                                  max-frequency = <150000000>;
                                  ctl-spec-caps = <0x8>;
                                  vmmc-supply = <>;
                                  vqmmc33sw-supply = <>;
                                  vdmmc33sw-supply = <>;
                                  vqmmc18sw-supply = <>;
                                  vdmmc18sw-supply = <>;
                                  status = "okay";
                          };
          
                          sdc1: sdmmc@04021000 {
                                  bus-width = <4>;
                                  no-mmc;
                                  no-sd;
                                  cap-sd-highspeed;
                                  /*sd-uhs-sdr12*/
                                  /*sd-uhs-sdr25*/
                                  /*sd-uhs-sdr50;*/
                                  /*sd-uhs-ddr50;*/
                                  /*sd-uhs-sdr104*/
                                  /*sunxi-power-save-mode;*/
                                  /*sunxi-dis-signal-vol-sw;*/
                                  cap-sdio-irq;
                                  keep-power-in-suspend;
                                  ignore-pm-notify;
                                  max-frequency = <50000000>;
                                  ctl-spec-caps = <0x8>;
                                  status = "okay";
                          };
          
          /*
           *usb_used: usb controller enable. 0-disable, 1-enable.
           *usb_port_type: usb mode. 0-device, 1-host, 2-otg.
           *usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect.
           *usb_drv_vbus_gpio:USB DRY_VBUS pin config or "axp_ctrl"
           */
                          usbc0:usbc0@0 {
                                  device_type = "usbc0";
                                  usb_port_type = <0x2>;
                                  usb_detect_type = <0x1>;
                                  usb_id_gpio = <&pio PH 11 0 0 0xffffffff 0xffffffff>;
                                  usb_det_vbus_gpio   = <&pio PH 12 0 0 0xffffffff 0xffffffff>;
                                  usb_regulator_io = "nocare";
                                  usb_wakeup_suspend = <0>;
                                  usb_luns = <3>;
                                  usb_serial_unique = <0>;
                                  usb_serial_number = "20080411";
                                  rndis_wceis = <1>;
                                  status = "okay";
                          };
          
                          ehci0:ehci0-controller@0x05101000 {
                                  drvvbus-supply = <&reg_usb1_vbus>;
                          };
          
                          ohci0:ohci0-controller@0x05101400 {
                                  drvvbus-supply = <&reg_usb1_vbus>;
                          };
          
                          usbc1:usbc1@0 {
                                  device_type = "usbc1";
                                  usb_regulator_io = "nocare";
                                  usb_wakeup_suspend = <1>;
                                  wakeup-source;
                                  status = "okay";
                          };
          
                          /* Audio Driver Modules */
                          codec:codec@0x05096000 {
                                  /* MIC and headphone gain setting */
                                  mic1gain        = <0x1F>;
                                  mic2gain        = <0x1F>;
                                  /* ADC/DAC DRC/HPF func enabled */
                                  /* 0x1:DAP_HP_EN; 0x2:DAP_SPK_EN; 0x3:DAP_HPSPK_EN */
                                  adcdrc_cfg      = <0x0>;
                                  adchpf_cfg      = <0x0>;
                                  dacdrc_cfg      = <0x0>;
                                  dachpf_cfg      = <0x0>;
                                  /* Volume about */
                                  digital_vol     = <0x00>;
                                  lineout_vol     = <0x1a>;
                                  headphonegain   = <0x00>;
                                  /* Pa enabled about */
                                  pa_level        = <0x01>;
                                  pa_msleep_time  = <0x78>;
          /*                      gpio-spk = <&pio PH 19 1 1 1 1>;*/
                                  /* regulator about */
                                  avcc-supply = <>;
                                  status = "okay";
                          };
          
                          sndcodec:sound@0 {
                                  noheadphonemic = <0x01>;
                                  status = "okay";
                          };
          
                          spdif:spdif-controller@0x05094000{
                                  status = "disabled";
                          };
          
                          sndspdif:sound@1{
                                  status = "disabled";
                          };
          
                          dmic:dmic-controller@0x05095000{
                                  status = "disabled";
                          };
          
                          snddmic:sound@2{
                                  status = "disabled";
                          };
          
                          daudio0:daudio@0x05090000 {
                                  mclk_div        = <0x01>;
                                  frametype       = <0x00>;
                                  tdm_config      = <0x01>;
                                  sign_extend     = <0x00>;
                                  tx_data_mode    = <0x00>;
                                  rx_data_mode    = <0x00>;
                                  msb_lsb_first   = <0x00>;
                                  pcm_lrck_period = <0x80>;
                                  audio_format    = <0x01>;
                                  daudio_master   = <0x04>;
                                  signal_inversion  = <0x01>;
                                  slot_width_select = <0x20>;
                                  status = "disabled";
                          };
          
                          snddaudio0:sound@3 {
                          /*
                                  sunxi,snddaudio-codec = "ac108.0-003b";
                                  sunxi,snddaudio-codec-dai = "ac108-pcm0";
                          */
                                  status = "disabled";
                          };
          
                          daudio1:daudio@0x05091000 {
                                  mclk_div        = <0x01>;
                                  frametype       = <0x00>;
                                  tdm_config      = <0x01>;
                                  sign_extend     = <0x00>;
                                  tx_data_mode    = <0x00>;
                                  rx_data_mode    = <0x00>;
                                  msb_lsb_first   = <0x00>;
                                  pcm_lrck_period = <0x20>;
                                  audio_format    = <0x01>;
                                  daudio_master   = <0x04>;
                                  signal_inversion  = <0x01>;
                                  slot_width_select = <0x20>;
                                  status = "disabled";
                          };
          
                          snddaudio1:sound@4 {
                                  status = "disabled";
                          };
          
                          daudio2:daudio@0x05092000 {
                                  mclk_div        = <0x01>;
                                  frametype       = <0x00>;
                                  tdm_config      = <0x01>;
                                  sign_extend     = <0x00>;
                                  tx_data_mode    = <0x00>;
                                  rx_data_mode    = <0x00>;
                                  msb_lsb_first   = <0x00>;
                                  pcm_lrck_period = <0x20>;
                                  audio_format    = <0x01>;
                                  daudio_master   = <0x04>;
                                  signal_inversion  = <0x01>;
                                  slot_width_select = <0x20>;
                                  status = "disabled";
                          };
          
                          snddaudio2:sound@5 {
                                  status = "disabled";
                          };
          
                          daudio3:daudio@0x05093000 {
                                  mclk_div        = <0x01>;
                                  frametype       = <0x00>;
                                  tdm_config      = <0x01>;
                                  sign_extend     = <0x00>;
                                  tx_data_mode    = <0x00>;
                                  rx_data_mode    = <0x00>;
                                  msb_lsb_first   = <0x00>;
                                  pcm_lrck_period = <0x20>;
                                  audio_format    = <0x01>;
                                  daudio_master   = <0x04>;
                                  signal_inversion  = <0x01>;
                                  slot_width_select = <0x20>;
                                  status = "disabled";
                          };
          
                          snddaudio3:sound@6 {
                                  status = "disabled";
                          };
                          vind0:vind@0 {
                                  vind0_clk = <336000000>;
                                  vind0_isp = <300000000>;
                                  status = "okay";
          
                                  actuator0:actuator@0 {
                                          device_type = "actuator0";
                                          actuator0_name = "ad5820_act";
                                          actuator0_slave = <0x18>;
                                          actuator0_af_pwdn = <>;
                                          actuator0_afvdd = "afvcc-csi";
                                          actuator0_afvdd_vol = <2800000>;
                                          status = "disabled";
                                  };
                                  flash0:flash@0 {
                                          device_type = "flash0";
                                          flash0_type = <2>;
                                          flash0_en = <>;
                                          flash0_mode = <>;
                                          flash0_flvdd = "";
                                          flash0_flvdd_vol = <>;
                                          device_id = <0>;
                                          status = "disabled";
                                  };
                                  sensor0:sensor@0 {
                                          device_type = "sensor0";
                                          sensor0_mname = "imx278_mipi";
                                          sensor0_twi_cci_id = <2>;
                                          sensor0_twi_addr = <0x20>;
                                          sensor0_mclk_id = <0>;
                                          sensor0_pos = "rear";
                                          sensor0_isp_used = <1>;
                                          sensor0_fmt = <1>;
                                          sensor0_stby_mode = <0>;
                                          sensor0_vflip = <0>;
                                          sensor0_hflip = <0>;
                                          sensor0_iovdd-supply = <>;
                                          sensor0_iovdd_vol = <1800000>;
                                          sensor0_avdd-supply = <>;
                                          sensor0_avdd_vol = <2800000>;
                                          sensor0_dvdd-supply = <>;
                                          sensor0_dvdd_vol = <1200000>;
                                          sensor0_power_en = <>;
                                          sensor0_reset = <&pio PE 7 1 0 1 0>;
                                          sensor0_pwdn = <&pio PE 6 1 0 1 0>;
                                          status  = "disabled";
                                  };
                                  sensor1:sensor@1 {
                                          device_type = "sensor1";
                                          sensor1_mname = "imx386_mipi";
                                          sensor1_twi_cci_id = <3>;
                                          sensor1_twi_addr = <0x20>;
                                          sensor1_mclk_id = <1>;
                                          sensor1_pos = "front";
                                          sensor1_isp_used = <1>;
                                          sensor1_fmt = <1>;
                                          sensor1_stby_mode = <0>;
                                          sensor1_vflip = <0>;
                                          sensor1_hflip = <0>;
                                          sensor1_iovdd-supply = <>;
                                          sensor1_iovdd_vol = <1800000>;
                                          sensor1_avdd-supply = <>;
                                          sensor1_avdd_vol = <2800000>;
                                          sensor1_dvdd-supply = <>;
                                          sensor1_dvdd_vol = <>;
                                          sensor1_power_en = <>;
                                          sensor1_reset = <&pio PE 9 1 0 1 0>;
                                          sensor1_pwdn = <&pio PE 8 1 0 1 0>;
                                          status  = "disabled";
                                  };
                                  vinc0:vinc@0 {
                                          vinc0_csi_sel = <0>;
                                          vinc0_mipi_sel = <0>;
                                          vinc0_isp_sel = <0>;
                                          vinc0_isp_tx_ch = <0>;
                                          vinc0_tdm_rx_sel = <0>;
                                          vinc0_rear_sensor_sel = <0>;
                                          vinc0_front_sensor_sel = <1>;
                                          vinc0_sensor_list = <0>;
                                          status = "disabled";
                                  };
                                  vinc1:vinc@1 {
                                          vinc1_csi_sel = <0>;
                                          vinc1_mipi_sel = <0>;
                                          vinc1_isp_sel = <0>;
                                          vinc1_isp_tx_ch = <0>;
                                          vinc1_tdm_rx_sel = <0>;
                                          vinc1_rear_sensor_sel = <0>;
                                          vinc1_front_sensor_sel = <1>;
                                          vinc1_sensor_list = <0>;
                                          status = "disabled";
                                  };
                                  vinc2:vinc@2 {
                                          vinc2_csi_sel = <1>;
                                          vinc2_mipi_sel = <1>;
                                          vinc2_isp_sel = <1>;
                                          vinc2_isp_tx_ch = <0>;
                                          vinc2_tdm_rx_sel = <1>;
                                          vinc2_rear_sensor_sel = <0>;
                                          vinc2_front_sensor_sel = <1>;
                                          vinc2_sensor_list = <0>;
                                          status = "disabled";
                                  };
                                  vinc3:vinc@3 {
                                          vinc3_csi_sel = <1>;
                                          vinc3_mipi_sel = <1>;
                                          vinc3_isp_sel = <1>;
                                          vinc3_isp_tx_ch = <0>;
                                          vinc3_tdm_rx_sel = <0xff>;
                                          vinc3_rear_sensor_sel = <0>;
                                          vinc3_front_sensor_sel = <1>;
                                          vinc3_sensor_list = <0>;
                                          status = "disabled";
                                  };
                          };
          /*----------------------------------------------------------------------------------
          disp init configuration
          
          disp_mode             (0:screen0<screen0,fb0>)
          screenx_output_type   (0:none; 1:lcd; 2:tv; 3:hdmi;5:vdpo)
          screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
                                (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
          screenx_output_format (for hdmi, 0:RGB 1:yuv444 2:yuv422 3:yuv420)
          screenx_output_bits   (for hdmi, 0:8bit 1:10bit 2:12bit 2:16bit)
          screenx_output_eotf   (for hdmi, 0:reserve 4:SDR 16:HDR10 18:HLG)
          screenx_output_cs     (for hdmi, 0:undefined  257:BT709 260:BT601  263:BT2020)
          screenx_output_dvi_hdmi (for hdmi, 0:undefined 1:dvi mode 2:hdmi mode)
          screen0_output_range   (for hdmi, 0:default 1:full 2:limited)
          screen0_output_scan    (for hdmi, 0:no data 1:overscan 2:underscan)
          screen0_output_aspect_ratio  (for hdmi, 8-same as original picture 9-4:3 10-16:9 11-14:9)
          fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
          fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
          fb0_scaler_mode_enable(scaler mode enable, used FE)
          fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
          lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
          lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
          lcd0_contrast         (LCD contrast, 0~100)
          lcd0_saturation       (LCD saturation, 0~100)
          lcd0_hue              (LCD hue, 0~100)
          framebuffer software rotation setting:
          disp_rotation_used:   (0:disable; 1:enable,you must set fbX_width to lcd_y,
          set fbX_height to lcd_x)
          degreeX:              (X:screen index; 0:0 degree; 1:90 degree; 3:270 degree)
          degreeX_Y:            (X:screen index; Y:layer index 0~15; 0:0 degree; 1:90 degree; 3:270 degree)
          devX_output_type : config output type in bootGUI framework in UBOOT-2018.
                                             (0:none; 1:lcd; 2:tv; 4:hdmi;)
          devX_output_mode : config output resolution(see include/video/sunxi_display2.h) of bootGUI framework in UBOOT-2018
          devX_screen_id   : config display index of bootGUI framework in UBOOT-2018
          devX_do_hpd      : whether do hpd detectation or not in UBOOT-2018
          chn_cfg_mode     : Hardware DE channel allocation config. 0:single display with 6
                                             channel, 1:dual display with 4 channel in main display and 2 channel in second
                             display, 2:dual display with 3 channel in main display and 3 channel in second
                             in display.
          ----------------------------------------------------------------------------------*/
                          disp: disp@06000000 {
                                  disp_init_enable         = <1>;
                                  disp_mode                = <1>;
          
                                  screen0_output_type      = <1>;
                                  screen0_output_mode      = <4>;
          
                                  screen0_output_format    = <0>;
                                  screen0_output_bits      = <0>;
                                  screen0_output_eotf      = <4>;
                                  screen0_output_cs        = <257>;
                                  screen0_output_dvi_hdmi  = <2>;
                                  screen0_output_range     = <2>;
                                  screen0_output_scan      = <0>;
                                  screen0_output_aspect_ratio = <8>;
          
                                  screen1_output_type      = <1>;
                                  screen1_output_mode      = <4>;
          
                                  screen1_output_format    = <0>;
                                  screen1_output_bits      = <0>;
                                  screen1_output_eotf      = <4>;
                                  screen1_output_cs        = <257>;
                                  screen1_output_dvi_hdmi  = <2>;
                                  screen1_output_range     = <2>;
                                  screen1_output_scan      = <0>;
                                  screen1_output_aspect_ratio = <8>;
          
                                  dev0_output_type         = <1>;
                                  dev0_output_mode         = <4>;
                                  dev0_screen_id           = <0>;
                                  dev0_do_hpd              = <0>;
          
                                  dev1_output_type         = <1>;
                                  dev1_output_mode         = <4>;
                                  dev1_screen_id           = <1>;
                                  dev1_do_hpd              = <0>;
          
                                  def_output_dev           = <0>;
                                  hdmi_mode_check          = <1>;
          
                                  fb0_format               = <0>;
                                  fb0_width                = <0>;
                                  fb0_height               = <0>;
          
                                  fb1_format               = <0>;
                                  fb1_width                = <0>;
                                  fb1_height               = <0>;
                                  chn_cfg_mode             = <1>;
          
                                  disp_para_zone           = <1>;
                                  /*VCC-LCD*/
                                  dc1sw-supply = <>;
                                  /*VCC-DSI*/
                                  eldo3-supply = <>;
                                  /*VCC-PD*/
                                  dcdc1-supply = <>;
                                  status        = "okay";
                          };
          /*----------------------------------------------------------------------------------
          ;lcd0 configuration
          
          ;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
          ;lcd_hv_if             0:Parallel RGB; 8:Serial RGB; 10:Dummy RGB; 11: RGB Dummy;12:CCIR656
          ;lcd_hv_clk_phase      0:0 degree;1:90 degree;2:180 degree;3:270 degree
          ;lcd_hv_sync_polarity  0:vs low,hs low; 1:vs high,hslow; 2:vs low,hs high; 3:vs high,hs high
          ;lcd_hv_syuv_seq       0:YUYV; 1:YVYU; 2:UYVY; 3:VYUY
          ;lcd_cpu_if            0:18bit/1 cycle parallel(RGB666); 4:16bit/1cycle parallel (RGB565)
          ;                      6:18bit/3 cycle parallel(RGB666); 7:16bit/2cycle parallel (RGB565)
          ;lcd_cpu_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
          ;lcd_dsi_if            0:video mode; 1: Command mode; 2:video burst mode
          ;lcd_dsi_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
          ;lcd_x:                lcd horizontal resolution
          ;lcd_y:                lcd vertical resolution
          ;lcd_width:            width of lcd in mm
          ;lcd_height:           height of lcd in mm
          ;lcd_dclk_freq:        in MHZ unit
          ;lcd_pwm_freq:         in HZ unit
          ;lcd_pwm_pol:          lcd backlight PWM polarity
          ;lcd_pwm_max_limit     lcd backlight PWM max limit(<=255)
          ;lcd_hbp:              hsync back porch(pixel) + hsync plus width(pixel);
          ;lcd_ht:               hsync total cycle(pixel)
          ;lcd_vbp:              vsync back porch(line) + vysnc plus width(line)
          ;lcd_vt:               vysnc total cycle(line)
          ;lcd_hspw:             hsync plus width(pixel)
          ;lcd_vspw:             vysnc plus width(pixel)
          ;lcd_lvds_if:          0:single link;  1:dual link(odd and even); 2:dual link(same pixel)
          ;lcd_lvds_colordepth:  0:8bit; 1:6bit
          ;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
          ;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
          ;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
          ;                      8~11bit:dclk phase; 12~15bit:de phase)
          ;lcd_gamma_en          lcd gamma correction enable
          ;lcd_bright_curve_en   lcd bright curve correction enable
          ;lcd_cmap_en           lcd color map function enable
          ;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
          ;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
          ;                      decrease it while lcd is not bright enough; increase while lcd is too bright
          ;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
          ;Pin setting for special function ie.LVDS, RGB data or vsync
          ;   name(donot care) = port:PD12<pin function><pull up or pull down><drive ability><output level>
          ;Pin setting for gpio:
          ;   lcd_gpio_X     = port:PD12<pin function><pull up or pull down><drive ability><output level>
          ;Pin setting for backlight enable pin
          ;   lcd_bl_en     = port:PD12<pin function><pull up or pull down><drive ability><output level>
          ;fsync setting, pulse to csi
          ;lcd_fsync_en          (0:disable fsync,1:enable)
          ;lcd_fsync_act_time    (active time of fsync, unit:pixel)
          ;lcd_fsync_dis_time    (disactive time of fsync, unit:pixel)
          ;lcd_fsync_pol         (0:positive;1:negative)
          ;gpio config: <&pio for cpu or &r_pio for cpus, port, port num, pio function,
          pull up or pull down(default 0), driver level(default 1), data>
          ;For dual link lvds: use lvds2link_pins_a  and lvds2link_pins_b instead
          ;For rgb24: use rgb24_pins_a  and rgb24_pins_b instead
          ;For lvds1: use lvds1_pins_a  and lvds1_pins_b instead
          ;For lvds0: use lvds0_pins_a  and lvds0_pins_b instead
          ;----------------------------------------------------------------------------------*/
                          lcd0: lcd0@01c0c000 {
                  lcd_used            = <1>;
          
                  lcd_driver_name     = "tft08006";
                  lcd_backlight       = <100>;
                  lcd_if              = <4>;
          
                  lcd_x               = <720>;
                  lcd_y               = <1440>;
                  lcd_width           = <52>;
                  lcd_height          = <52>;
                  lcd_dclk_freq       = <70>;
          
                  lcd_pwm_used        = <1>;
                  lcd_pwm_ch          = <0>; //PD23
          //        lcd_pwm_ch          = <1>;//PI0
                  lcd_pwm_freq        = <1000>;
                  lcd_pwm_pol         = <0>;
                  lcd_pwm_max_limit   = <255>;
          
                  lcd_hbp             = <32>;
                  lcd_ht              = <868>;
                  lcd_hspw            = <4>;
                  lcd_vbp             = <12>;
                  lcd_vt              = <1488>;
                  lcd_vspw            = <4>;
          
                  lcd_dsi_if          = <0>;
                  lcd_dsi_lane        = <4>;
                  lcd_lvds_if         = <0>;
                  lcd_lvds_colordepth = <0>;
                  lcd_lvds_mode       = <0>;
                  lcd_frm             = <0>;
                  lcd_hv_clk_phase    = <0>;
                  lcd_hv_sync_polarity= <0>;
                  lcd_io_phase        = <0x0000>;
                  lcd_gamma_en        = <0>;
                  lcd_bright_curve_en = <0>;
                  lcd_cmap_en         = <0>;
                  lcd_fsync_en        = <0>;
                  lcd_fsync_act_time  = <1000>;
                  lcd_fsync_dis_time  = <1000>;
                  lcd_fsync_pol       = <0>;
          
                  deu_mode            = <0>;
                  lcdgamma4iep        = <22>;
                  smart_color         = <90>;
          
                                  lcd_pin_power;
                                  lcd_power;
                                  /*lcd_bl_en = <&pio PB 8 1 0 3 1>;*/
                                  /*lcd_gpio_1 = <&pio PD 23 1 0 3 1>;*/
                                  lcd_gpio_0 = <&r_pio PL 5 1 1 3 1>; //PL5
                                  //lcd_gpio_0 = <&pio PI 1 1 1 3 1>; //PI1
                                  pinctrl-0 = <&dsi4lane_pins_a>;
                                  pinctrl-1 = <&dsi4lane_pins_b>;
          
                                  status = "okay";
          
                          };
          
          
                          lcd1: lcd1@01c0c001 {
                                  lcd_used                = <1>;
                                  lcd_driver_name         = "st7701s_rgb";
          
                                  lcd_if                  = <0>;
                                  lcd_hv_if               = <0>;
          
                                  lcd_width               = <70>;
                                  lcd_height              = <72>;
                                  lcd_x                   = <480>;
                                  lcd_y                   = <480>;
                                  lcd_dclk_freq           = <11>;
                                  lcd_hbp                 = <60>;
                                  lcd_ht                  = <612>;
                                  lcd_hspw                = <12>;
                                  lcd_vbp                 = <18>;
                                  lcd_vt                  = <520>;
                                  lcd_vspw                = <4>;
          
                                  lcd_backlight           = <250>;// 0 ~ 255
                                  lcd_pwm_used            = <1>;
                                  lcd_pwm_ch              = <8>;
                                  lcd_pwm_freq            = <20000>;
                                  lcd_pwm_pol             = <1>;
                                  lcd_pwm_max_limit   = <255>;
                                  lcd_bright_curve_en = <0>;
          
                                  lcd_frm                 = <1>;
                                  lcd_io_phase            = <0x0000>;
                                  lcd_gamma_en            = <0>;
                                  lcd_cmap_en             = <0>;
                                  lcd_hv_clk_phase        = <1>;
                                  lcd_hv_sync_polarity= <0>;
                                  lcd_rb_swap         = <0>;
          
                                  //lcd_bl_en           = <&pio PI 7 1 1 3 1>;
                                  lcd_gpio_0              = <&pio PJ 16 1 1 3 1>;//reset
                                  lcd_gpio_1              = <&pio PJ 17 1 1 3 1>;//cs
                                  lcd_gpio_2              = <&pio PC  2 1 1 3 1>;//sdi
                                  lcd_gpio_3              = <&pio PC 12 1 1 3 1>;//scl
          
          /*
                                  lcd_gpio_2              = <&r_pio PL 2 1 1 3 1>;//sdi
                                  lcd_gpio_3              = <&r_pio PL 3 1 1 3 1>;//scl
          */
                                  lcd_pin_power;
                                  lcd_power;
          
                                  pinctrl-0                       = <&rgb18_pins_c>;
                                  pinctrl-1                       = <&rgb18_pins_d>;
          
                                  status = "okay";
                          };
          
          
                          wlan: wlan@0 {
                                  compatible    = "allwinner,sunxi-wlan";
                                  pinctrl-0;
                                  pinctrl-names;
                                  wlan_busnum   = <0x1>;
                                  wlan_power;
                                  wlan_io_regulator;
                                  wlan_regon = <&r_pio PL 10 1 0xffffffff 0xffffffff 0>;
                                  wlan_hostwake = <&r_pio PL 7 1 0xffffffff 0xffffffff 0>;
                                  chip_en;
                                  power_en;
                                  status        = "okay";
                          };
          
                          bt: bt@0 {
                                  compatible    = "allwinner,sunxi-bt";
                                  clocks        = <&clk_losc_out>, <&clk_dcxo_out>;
                                  bt_power;
                                  bt_io_regulator;
                                  bt_rst_n      = <&r_pio PL 5 1 0xffffffff 0xffffffff 0>;
                                  bt_wake = <&r_pio PL 4 1 0xffffffff 0xffffffff 0>;
                                  bt_hostwake = <&r_pio PL 6 1 0xffffffff 0xffffffff 0>;
                                  status        = "okay";
                          };
          
          
                          modem: modem@0 {
                                  compatible    = "allwinner,sunxi-modem";
                                  modem_power;
                                  modem_rst     = <&pio PB 3 1 0xffffffff 0xffffffff 1>;
                                  status        = "disabled";
                          };
          
                          btlpm: btlpm@0 {
                                  compatible  = "allwinner,sunxi-btlpm";
                                  uart_index  = <0x1>;
                                  bt_wake     = <&r_pio PL 4 1 0xffffffff 0xffffffff 1>;//AP-WAKE-BT
                                  bt_hostwake = <&r_pio PL 6 1 0xffffffff 0xffffffff 1>;//BT-WAKE-AP
                                  status      = "okay";
          
                          };
          /*
                          btlpm: btlpm@0 {
                                  compatible  = "allwinner,sunxi-btlpm";
                                  uart_index  = <0x1>;
                                  bt_wake     = <&r_pio PL 3 1 0xffffffff 0xffffffff 1>;
                                  bt_hostwake = <&r_pio PL 4 6 0xffffffff 0xffffffff 1>;
                                  status      = "disabled";
          
                          };
          */
                          addr_mgt: addr_mgt@0 {
                                  compatible     = "allwinner,sunxi-addr_mgt";
                                  type_addr_wifi = <0x0>;
                                  type_addr_bt   = <0x0>;
                                  type_addr_eth  = <0x0>;
                                  status         = "okay";
                          };
          
                          uart0: uart@05000000 {
                                  uart-supply = <>;
                          };
          
                          uart1: uart@05000400 {
                                  status = "okay";
                          };
          
                          uart5: uart@05001400 {
                                  status = "disabled";
                          };
          
                          uart6: uart@05001800 {
                                  status = "disabled";
                                  rs485-en = <&pio PI 11 1 1 0xffffffff 1>;
                          };
          
                          ncs8801s {
                                  status = "disabled";
                                  ncs8801s_reset = <&pio PI 14 1 0xffffffff 0xffffffff 0>;
                          };
                  };
          
                  gpu: gpu@0x01800000 {
                                  gpu_idle = <0>;
                                  dvfs_status = <1>;
                                  pll_rate = <504000>;
                                  independent_power = <0>;
                                  operating-points = <
                                           /* KHz   uV */
                                          504000 950000
                                          472500 950000
                                          441000 950000
                                          252000 950000
                                   >;
                                   gpu-supply = <>;
                  };
                  opp_dvfs_table:opp_dvfs_table {
                          cluster_num = <1>;
                          opp_table_count = <1>;
                  };
          };
          
          &cpu0 {
                  cpu-supply = <>;
          };
          
          1 Reply Last reply Reply Quote Share 1
          • Y
            yixiuge LV 5 last edited by

            xxxa_recompress.jpg

            一顿操作猛如虎, 终于搞定MIPI LCD

            1 Reply Last reply Reply Quote Share 1
            • 1 / 1
            • First post
              Last post

            Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

            行为准则 | 用户协议 | 隐私权政策