This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5749: Dtb -How to cut ov2659

I use ti-processor-sdk-linux-am57xx-evm-06.03.00.106 on am5749 (custom board).

I would like to cut  ov2659 support from dts:

  • Hi Oleg,

    By cutting if you mean disabling the node from dts then the following should disable:

    &ov2659 {

    status = "disabled";

    };

    In the board.dts file that you are using.

    Regards,
    Keerthy

  • Hi Keerty,

    In my case I should use : am574x-idk-pps.dtb

    How I can understand we have a 3 methods:

    1.Just a cut couple of code from dtb. Which located : rootfs/boot/am574x-idk.dtb

    2.Disable a code from this dtb. Which located: rootfs/boot/am574x-idk.dtb

    3.It is disable or delet couple of coude from dtsi and the rebuild dtb. Which located: SDK/board-support/linux-4.19.94+gitAUTOINC+be5389fd85-gbe5389fd85/arch/arm/boot/dts/am574x-idk.dtsi(dts)

    So like you understood I interest the 3 method. 

    Actualy I can't  find the right location in dtsi, when I try to cut something I had a many errors because you have very strong and difficult dependency between dts.

    The same situation with: e2e.ti.com/.../3445830

    Regards,

    Oleg

  • Hi Oleg,

    Instead of deleting any node any place just try to disable the node in your am574x-idk-pps.dts.
    Do not delete any node from anywhere. This will localize build issues only w.r.t to your dts file.

    Like the top node that you want to disable ov2659. Then in your am574x-idk-pps.dts
    just do:

    &ov2659 {
    status = "disabled";
    };

    Regards,
    Keerthy

  • Hi Keerthy,

    I can't find am574x-idk-pps.dts in my directory I just a have am574x-idk-pps.dtso ,but

    what I see in this file, nothing similar with ov2659.


    // SPDX-License-Identifier: GPL-2.0
    /*
     * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
     */

    /dts-v1/;
    /plugin/;

    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/pinctrl/dra.h>

    &mac {
        /* cptr pps1 generator and latch properties */
        pps_timer = <&timer16>;
        latch_timer = <&timer15>;
        pinctrl-names = "pwm_off", "pwm_on", "ref_off", "ref_on",
                "latch_on", "latch_off";
        pinctrl-0 = <&pps1_timer16_pwm_off>;
        pinctrl-1 = <&pps1_timer16_pwm_on>;
        pinctrl-2 = <&pps1_timer16_pwm2_off>;
        pinctrl-3 = <&pps1_timer16_pwm2_on>;
        pinctrl-4 = <&pps1_timer15_latch_on>;
        pinctrl-5 = <&pps1_timer15_latch_off>;

        pps-enable-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
        ref-enable-gpios = <&gpio6 19 GPIO_ACTIVE_HIGH>;
    };

    &pruss2_eth {
        pinctrl-names = "sync0_off", "sync0_on", "latch0_off", "latch0_on",
                "sync1_off", "sync1_on";
        pinctrl-0 = <&pr2_edc_sync0_off>;
        pinctrl-1 = <&pr2_edc_sync0_on>;
        pinctrl-2 = <&pr2_edc_latch0_off>;
        pinctrl-3 = <&pr2_edc_latch0_on>;
        pinctrl-4 = <&pr2_edc_sync1_off>;
        pinctrl-5 = <&pr2_edc_sync1_on>;
    };

    &dra7_pmx_core {
        pps1_timer16_pwm_on: pps1_timer16_pwm_on {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x36a0, PIN_OUTPUT | MUX_MODE10)
            >;
        };

        pps1_timer16_pwm_off: pps1_timer16_pwm_off {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x36a0, PIN_OUTPUT_PULLDOWN | MUX_MODE15)
            >;
        };

        pps1_timer16_pwm2_on: pps1_timer16_pwm2_on {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x3680, PIN_OUTPUT | MUX_MODE7)
            >;
        };

        pps1_timer16_pwm2_off: pps1_timer16_pwm2_off {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x3680, PIN_OUTPUT_PULLDOWN | MUX_MODE15)
            >;
        };

        pps1_timer15_latch_on: pps1_timer15_latch_on {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT | MUX_MODE7)
            >;
        };

        pps1_timer15_latch_off: pps1_timer15_latch_off {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x3684, PIN_INPUT | MUX_MODE15)
            >;
        };

        pr2_edc_sync0_on: pr2_edc_sync0_on {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x35f8, PIN_OUTPUT | MUX_MODE10)
            >;
        };

        pr2_edc_sync0_off: pr2_edc_sync0_off {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x35f8, PIN_OUTPUT_PULLDOWN | MUX_MODE15)
            >;
        };

        pr2_edc_latch0_on: pr2_edc_latch0_on {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x35f0, PIN_INPUT | MUX_MODE10)
            >;
        };

        pr2_edc_latch0_off: pr2_edc_latch0_off {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x35f0, PIN_INPUT | MUX_MODE15)
            >;
        };

        pr2_edc_sync1_on: pr2_edc_sync1_on {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x35fc, PIN_OUTPUT | MUX_MODE10)
            >;
        };

        pr2_edc_sync1_off: pr2_edc_sync1_off {
            pinctrl-single,pins = <
                DRA7XX_CORE_IOPAD(0x35fc, PIN_OUTPUT_PULLDOWN | MUX_MODE15)
            >;
        };
    };

    &ptp_bc {
        pps-sel0-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
        pps-sel1-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;

        status = "okay";
    };

    Regards,

    Oleg

  • Oleg,

    "In my case I should use : am574x-idk-pps.dtb"

    How are you getting a dtb without am574x-idk-pps.dts.

    If its dtso then you should see dtbo. Can you please tell me for your custom board what is the .dtb
    that gets loaded? If its am574x-idk.dtb then do the disabling of nodes in am574x-idk.dts

    Best Regards,
    Keerthy



  • Hi Keerthy,

    For a load I use :am574x-idk.dtb

    I mean I can't find  am574x-idk-pps.dts in my SDK directory.

    If we talking about Boot directory on a flash ..Yes I have am574x-idk-pps.dtb

    But I'm confused ....you sad for a normal work and boot I should have only 3 files in boot directory:

    am574x-idk.dtb

    zImage-4.19.94-gbe5389fd85

    zImage(link)

    I dont know how I get: am574x-idk-pps.dtb

    But what I have here:  linux-4.19.94+gitAUTOINC+be5389fd85-gbe5389fd85/arch/arm/boot/

    am574x-idk-pps.dtb

    am574x-idk-pps.dtbo

    am574x-idk.dts no have information about ov2659

    but it is have many includes and actually it is awful...because of the versatility  we get confusion

    for example:

    #include "dra74x-p.dtsi"
    #include "dra7-mmc-iodelay.dtsi"
    #include "dra76x-mmc-iodelay.dtsi"
    #include "am572x-idk-common.dtsi"

    #include "am57xx-evm-cmem-am574x.dtsi"

    I should find some code ov2659 in some of the includes....but I dont know where exactly I should disable it...

    Best Regards,

    Oleg

  • Hi Oleg,

    In dts i did this change:

    diff --git a/arch/arm/boot/dts/am574x-idk.dts b/arch/arm/boot/dts/am574x-idk.dts
    index 9418828ee2..a231054ffd 100644
    --- a/arch/arm/boot/dts/am574x-idk.dts
    +++ b/arch/arm/boot/dts/am574x-idk.dts
    @@ -46,4 +46,8 @@
            reset-delay-us = <2>;   /* PHY datasheet states 1uS min */
     };
     
    +&ov2659 {
    +status = "disabled";
    +};
    +

    You can be sure that ov2659 will never be probed on am574x-idk.

    I agree due to the number of boards supported the tree structure will get complicated
    and deletion will tough but disabling it is as easy as above.

    Regards,
    Keerthy