Skip to content
Snippets Groups Projects
seco-imx6dl-santino-video-rgb-touch-ad7879-overlay.dts 3.79 KiB
Newer Older

/dts-v1/;
/plugin/;

#include <dt-bindings/display/media-bus-format.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {

    fragment@0 {
        target = <&mxcfb1>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@1 {
        target-path = "/";

        __overlay__ {
            // FANNAL, FN0700D083A
            lcd@0 {
                compatible = "fsl,lcd";
                ipu_id = <0>;
                disp_id = <0>;
                default_ifmt = "RGB666";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ipu1_lcdif18bpp>;
                status = "okay";
            };

            // Do not add a label to the backlight node. Due to the driver,
            // the label causes functional failures
            backlight {
                compatible = "pwm-backlight";
                power-supply = <&reg_5P0>;
                pwms = <&pwm1 0 50000 0>;
                brightness-levels = <0x0000 0x0281 0x06E1 0x0E56 0x1B0D 0x30B8 0x55A9 0x94A0 0xFFFF>;
                num-interpolated-steps = <32>;
                default-brightness-level = <0x94A0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_bl_on1>;
                enable-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
                status = "okay";
            };

            reg_rgb_panel_on: reg_rgb_panel_on {
                compatible              = "regulator-fixed";
                regulator-name          = "rgb_panel_on";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                gpio                    = <&gpio5 21 GPIO_ACTIVE_HIGH>;
                enable-active-high;
                regulator-boot-on;
            };

            // The properties:
            // power-supply = <&reg_rgb_panel_on>
            // vcc-supply = <&reg_rgb_panel_on>
            // have been tested in the lcd@0 node but no consumer is detected
            // and the regulator is switched-off after a while.
            // This consumer has been added to let the user enable/disable the
            // display from the userspace, overcoming the described issue.
            reg_rgb_panel_on_consumer {
                compatible = "reg-userspace-consumer";
                regulator-name = "LCD_ENA";
                regulator-boot-on;
                regulator-supplies = "rgb_panel_on";
                rgb_panel_on-supply = <&reg_rgb_panel_on>;
            };
        };
    };

    fragment@2 {
        target = <&i2c3>;

        __overlay__ {
            #address-cells = <1>;
            #size-cells = <0>;
            ad7879@2c {
                adi,conversion-interval = /bits/ 8 <255>;
                adi,averaging = /bits/ 8 <1>;
                adi,median-filter-size = /bits/ 8 <2>;
                adi,acquisition-time = /bits/ 8 <1>;
                adi,first-conversion-delay = /bits/ 8 <3>;
                adi,resistance-plate-x = <120>;
                touchscreen-max-pressure = <4096>;
                status = "okay";
                interrupt-parent = <&gpio4>;
                interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-0 = <&pinctrl_rtouch_int2>;
                pinctrl-names = "default";
                compatible = "adi,ad7879-1";
                reg = <0x2c>;
            };
        };
    };

    fragment@3 {
        target-path = "/";

        __overlay__ {
            serial-number = "03879390";
        };
    };

    fragment@4 {
        target = <&fec>;

        __overlay__ {
            local-mac-address = [00 07 8e 3b 31 de];
        };
    };

    fragment@5 {
        target = <&spreadspectrum>;

        __overlay__ {
            enabled = <1>;
            denom = <400>;
            stop = <241>;
            step = <1>;
        };
    };
};