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.

[参考译文] PROCESSOR-SDK-AM335X:找不到 pctldev、因为 I2C 节点错误

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582951/processor-sdk-am335x-could-not-find-pctldev-for-i2c-node-error

器件型号:PROCESSOR-SDK-AM335X

我有 一个客户 AM335x 器件。 它与 EVM 板类似。

在我的内核启动日志中显示以下消息、您能 告诉我看到这些消息的原因吗? 同时、我遇到了使用树形文件设置 GPIO 方向的问题。

MAP_GPIO 44e07000.GPIO:找不到节点 /ocp/l4_wkup@44c00000/SCM@210000/引脚多路复用@800/GPIO0_PINS_DEFAULT 的 pctldev、推迟探针

omap_i2c 44e0b000.i2c:找不到节点/ocp/l4_wkup@44c00000/SCM@210000/ pinmux@800/pinmux_i2c0_pins 的 pctldev、延迟探针

这是我的树文件。

am33xx_pinmux{(am33xx_pinmux)}
 pinctrl-names ="default";

 GPIO0_PINS_DEFAULT:GPIO0_PINS_DEFAULT{
  pinctrl-single、pins =<
   0x164 (PIN_INPUT | MUX_MODE7) /*(C18) eCAP0_IN_PWM0_OUT.GPIO0[7]*/
   0xd0 (PIN_INPUT | MUX_MODE7)  /*(V2) LCD_data12.GPIO0[8]*/
   0xD4 (PIN_INPUT | MUX_MODE7)  /*(V3) LCD_data13.GPIO0[9]*/
   0xd8 (PIN_INPUT | MUX_MODE7)  /*(V4) LCD_data14.GPIO0[10]*
   0xdc (PIN_INPUT | MUX_MODE7)  /*(T5) LCD_data15.GPIO0[11]*/
   0x1b0 (PIN_INPUT | MUX_MODE7) /*(A15) xdma_event_in0.GPIO0[19]*/
   0x1b4 (PIN_INPUT | MUX_MODE7) /*(D14) xdma_event_intr1.gpio0[20]*/
   0x20 (PIN_INPUT | MUX_MODE7)  /*(U10) GPMC_AD8.GPIO0[22]*/
   0x24 (PIN_INPUT | MUX_MODE7)  /*(T10) GPMC_AD9.GPIO0[23]*/
   0x28 (PIN_INPUT | MUX_MODE7)  /*(T11) GPMC_ad10.GPIO0[26]*/
   0x2C (PIN_INPUT | MUX_MODE7)  /*(U12) GPMC_AD11.GPIO0[27]*/
   0x144 (PIN_INPUT | MUX_MODE7) /*(H18) rmii1_REFCLK.GPIO0[29]*/
  >;
 };

i2c0_pins:pinmux_i2c0_pins{
  pinctrl-single、pins =<
   0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda *
   0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_SCL.i2c0_SCL *
  >;
 };

 i2c1_pins:pinmux_i2c1_pins{
  pinctrl-single、pins =<
   0x158 (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_D1.i2c1_sda *
   0x15c (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_SCL *
  >;
 };

};

GPIO0{&gpio0}
 pinctrl-names ="default";
 pinctrl-0 =<&GPIO0_PINs>;
 状态="正常";
};

i2c0{(&I)

               兼容="ti、OMAP4-i2c";

               pinctrl-names ="default";

               pinctrl-0 =<&i2c0_PINs>;

 

               状态="正常";

               时钟频率=<10000>;

 

               TPS:TPS@2D{

                               reg =<0x2D>;

               };

};

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请检查此主题: e2e.ti.com/.../390315
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到了这个链接。
    答案如下:
    没有问题没有被困扰,我离开了,因为它不影响我的功能

    那么,您认为这是正确的行为吗? 启动链接内核后,GPIO 方向仍然不正确。 树文件中是否有设置 GPIO 方向的示例?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这实际上不是一个关键问题。 它通常表示内核稍后将返回到器件(在您的情况下为 GPIO 和 i2c)引脚多路复用。

    为了确保电路板启动后、您可以使用 devmem2检查相应的 pinctrl 寄存器。
    另外一种可能是这些引脚已经配置(即在 u-boot 中)、那么您也可以检查这一点吗?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、这些引脚已在 uboot 中配置。 但它们是在 Linux 内核中重新配置的。

    我使用 devmem2检查了它们、发现 GPIO 没有改变 (它们仍然 保持    与 uboot 中的设置相同的配置。)

    这是我的树文件。 是这样吗?

    /{
     型号="TI AM335x EVM";
     兼容="ti、am335x-evm"、"ti、am33xx";

     CPU{
      CPU@0{
       //CPU0-SUPPLY =<&vdd1_reg>;
      };
     };

     内存{
      DEVICE_TYPE ="存储器";
      REG =<0x8000000000 0x10000000>;/* 256 MB */
     };

     VBAT:fixedregulator@0{
      兼容="稳压器固定";
      稳压器名称="VBAT";
      稳压器最小微伏=<5000000>;
      稳压器最大值微伏=<5000000>;
      稳压器启动;
     };

     lis3_reg:fixedregator@1{
      兼容="稳压器固定";
      电脑控制器名称="lis3_reg";
      稳压器启动;
     };
    };

    am33xx_pinmux{(am33xx_pinmux)}
     pinctrl-names ="default";

    IXB_GPIO0_PINS_DEFAULT:IXB_GPIO0_PINS_DEFAULT{
      pinctrl-single、pins =<
       0x164 (PIN_INPUT | MUX_MODE7) /*(C18) eCAP0_IN_PWM0_OUT.GPIO0[7]*/
       0xd0 (PIN_INPUT | MUX_MODE7)  /*(V2) LCD_data12.GPIO0[8]*/
       0xD4 (PIN_INPUT | MUX_MODE7)  /*(V3) LCD_data13.GPIO0[9]*/
       0xd8 (PIN_INPUT | MUX_MODE7)  /*(V4) LCD_data14.GPIO0[10]*
       0xdc (PIN_INPUT | MUX_MODE7)  /*(T5) LCD_data15.GPIO0[11]*/
       0x1b0 (PIN_INPUT | MUX_MODE7) /*(A15) xdma_event_in0.GPIO0[19]*/
       0x1b4 (PIN_INPUT | MUX_MODE7) /*(D14) xdma_event_intr1.gpio0[20]*/
       0x20 (PIN_INPUT | MUX_MODE7)  /*(U10) GPMC_AD8.GPIO0[22]*/
       0x24 (PIN_INPUT | MUX_MODE7)  /*(T10) GPMC_AD9.GPIO0[23]*/
       0x28 (PIN_INPUT | MUX_MODE7)  /*(T11) GPMC_ad10.GPIO0[26]*/
       0x2C (PIN_INPUT | MUX_MODE7)  /*(U12) GPMC_AD11.GPIO0[27]*/
       0x144 (PIN_INPUT | MUX_MODE7) /*(H18) rmii1_REFCLK.GPIO0[29]*/
      >;
     };

    GPIO0{&gpio0}

    pinctrl-names ="default";
     pinctrl-0 =<&IXB_GPIO0_PINS_DEFAULT>;

     状态="正常";

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对 Yordan Kovachev 的答复:

    是的、这些引脚已在 uboot 中配置。 但它们是在 Linux 内核中重新配置的。

    我使用 devmem2检查了它们、发现 GPIO 没有改变(它们仍然保持与 uboot 中的设置相同的配置。)

    这是我的树文件。 是这样吗?

    /{
    型号="TI AM335x EVM";
    兼容="ti、am335x-evm"、"ti、am33xx";

    CPU{
    CPU@0{
    //CPU0-SUPPLY =<&vdd1_reg>;
    };
    };

    内存{
    DEVICE_TYPE ="存储器";
    REG =<0x8000000000 0x10000000>;/* 256 MB */
    };

    VBAT:fixedregulator@0{
    兼容="稳压器固定";
    稳压器名称="VBAT";
    稳压器最小微伏=<5000000>;
    稳压器最大值微伏=<5000000>;
    稳压器启动;
    };

    lis3_reg:fixedregator@1{
    兼容="稳压器固定";
    电脑控制器名称="lis3_reg";
    稳压器启动;
    };
    };

    am33xx_pinmux{(am33xx_pinmux)}
    pinctrl-names ="default";

    IXB_GPIO0_PINS_DEFAULT:IXB_GPIO0_PINS_DEFAULT{
    pinctrl-single、pins =<
    0x164 (PIN_INPUT | MUX_MODE7)/*(C18) eCAP0_IN_PWM0_OUT.GPIO0[7]*/
    0xd0 (PIN_INPUT | MUX_MODE7)/*(V2) LCD_data12.GPIO0[8]*/
    0xD4 (PIN_INPUT | MUX_MODE7)/*(V3) LCD_data13.GPIO0[9]*/
    0xd8 (PIN_INPUT | MUX_MODE7)/*(V4) LCD_data14.GPIO0[10]*
    0xdc (PIN_INPUT | MUX_MODE7)/*(T5) LCD_data15.GPIO0[11]*/
    0x1b0 (PIN_INPUT | MUX_MODE7)/*(A15) xdma_event_in0.GPIO0[19]*/
    0x1b4 (PIN_INPUT | MUX_MODE7)/*(D14) xdma_event_intr1.gpio0[20]*/
    0x20 (PIN_INPUT | MUX_MODE7)/*(U10) GPMC_AD8.GPIO0[22]*/
    0x24 (PIN_INPUT | MUX_MODE7)/*(T10) GPMC_AD9.GPIO0[23]*/
    0x28 (PIN_INPUT | MUX_MODE7)/*(T11) GPMC_ad10.GPIO0[26]*/
    0x2C (PIN_INPUT | MUX_MODE7)/*(U12) GPMC_AD11.GPIO0[27]*/
    0x144 (PIN_INPUT | MUX_MODE7)/*(H18) rmii1_REFCLK.GPIO0[29]*/
    >;
    };



    GPIO0{&gpio0}

    pinctrl-names ="default";
    pinctrl-0 =<&IXB_GPIO0_PINS_DEFAULT>;

    状态="正常";

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    [引用]这是我的树文件。 是这样吗?

    是的、显示的 DTS 配置是正确的。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。 如果正确、为什么 GPIO 方向在引导 Linux 内核后不会改变。 我通过 memutil 读取寄存器存储器位置来检查 GPIO 寄存器。 此外、它不允许我在开始时访问这些 GPIO 存储器。 我必须通过/sys/class/gpio/.创建 GPIO 然后、我可以访问 GPIO 寄存器