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/processor-SDK-AM57X:从驱动程序代码切换摄像头模块的 GPIO

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/596525/linux-processor-sdk-am57x-toggle-gpio-for-camera-module-from-driver-code

器件型号:PROCESSOR-SDK-AM57X
主题中讨论的其他器件:TMDSEVM572X

工具/软件:Linux

您好!

我将使用 带最新 Linux 处理器 SDK 的 AM572x 评估模块的 TMDSEVM572X。

这次我不连接摄像头、只需硬件检查引脚状态。 我的问题是、能否 从驱动程序端代码手动设置 GPIO 引脚?(ti-processor-sdk-linux-am57xx-evm-03.03.00.04/board-support/linux-4.4.4.41+gitAUTOINC+f9f6f0db2d-gf9f6f0db2d/drivers/media/i2c/mt9t11x.c) 例如、我在"mt9t11x_probe ()"函数中执行了以下操作-

GPIO_read = gpioD_get_raW_value (priv->bufen_gpio);
dev_err (&client->dev、"BUFEN_PREV %d"、GPIO_Read);
gpioD_set_raW_value_cansleep(priv->bufen_gpio, 1);
GPIO_read = gpioD_get_raW_value (priv->bufen_gpio);
dev_err (&client->dev、"BuFEN_After %d"、GPIO_Read);

它反映了我在日志(dmesg |grep mt9t11x)中的更改、AS -

[7.867966] mt9t11x 4-003c:BUFEN_PREV 0
[7.871907] mt9t11x 4-003c:BUFEN_After 1.

但无法在硬件引脚电平下提高电平。

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    有更新吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    反馈将在可用时直接发布在此处。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    要检查硬件、您可以将代码更改拖放到所做的上面。 您是否执行了以下操作?
    1:您是否已正确设置 pinmux 以选择 GPIO?
    2:哪个组是 GPIO、是否启用了组、您能否读取它的版本号?
    3:参考链接[1]、从用户空间测试硬件、将 GPIO 引脚设置为 OP/IP

    [1] elinux.org/GPIO

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

    Prabhakar、您好!

    是否已正确设置 pinmux 以选择 GPIO?


    是的、我在 mux_data.h 和 am57xx-beagle-x15-common.dtsi 文件中正确执行了 pinmux。

    哪个组是 GPIO,是否已启用组,您能否读取它的修订号?


    我的 GPIO 是 GPIO1_19 (焊球名称- GPMC_AD13)。 您能建议我如何找到相应的银行并启用它吗?

    请参阅链接[1]、从用户空间测试硬件、以将 GPIO 引脚设置为 OP/IP  


    我已经完成了这个过程、这些值是更新的软件、但不反映在硬件中。

    谢谢。

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

    [引用]我的 GPIO 是 GPIO1_19 (焊球名称- GPMC_AD13)。 您能否建议我如何找到相应的银行并启用它?[报价]

    在 am57xx-beagle-x15-common.dtsi (内核代码)中添加以下内容:
    GPIO1{&gpio1}
    pinctrl-names ="default";
    pinctrl-0 =<&you_GPIO1_pinmux_node_name>;
    状态="正常"; =>这将启用 GPIO1。
    };

    然后、在内核驱动程序中、您应该添加适当的 GPIO 头文件并使用 Documentation/GPIO/gpio.txt & Documentation/GPIO/DRIVER.txt 中描述的 API。

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

    Yordan、您好!

    我添加了上述呼叫、但仍然没有结果。

    请验证我切换特定 GPIO (GPIO1_19)的步骤-

    1) 1)我更改了 mux_data.h 中的 pinmux 设置

    {GPMC_AD13、(M14 | PIN_OUTPUT)}、// GPMC_ad13.buff _EN GPIO1_19*/

    2) 2)在 am57xx-beagle-x15-common.dtsi 中创建了一个节点

    GPIO1_PINS_DEFAULT:GPIO1_PINS_DEFAULT{
    pinctrl-signle、pins =<
     0x34 (PIN_OUTPUT | MUX_MODE14)//GPMC_AD13.GPIO1_19
    >;

    };  

    以及您所说的添加的上述调用。

    GPIO1{&gpio1}
    pinctrl-names ="default";
    pinctrl-0 =<&GPIO1_PINS_DEFAULT>;
    状态="正常";//启用 GPIO1
    };

    在&i2c5调用中的同一文件中、


    i2c5{(&I)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&i2c5_PINS_DEFAULT>;
    时钟频率=<400000>;
    mt9t11x@3C{
    兼容="Aptina、mt9t111";
    reg =<0x33>;


    bufen-GPIO =<&GPIO1 19 GPIO_ACTIVE_HIGH_>;


    端口{
    CAM:端点{
    远程端点=<&V vin3a>;
    HSYNC-ACTIVE =<1>;
    vsync-active =<1>;
    pclk-sample =<0>;
    输入时钟频率=<32000000>;
    PIXEL 时钟频率=<96000000 >;
    };
    };
    };
    };

    在驱动程序代码中、我添加了

    //读取 buffen_gpio 状态
    GPIO_read = gpioD_get_raW_value (priv->bufen_gpio);
    dev_err (&client->dev、"BUFEN_PREV %d"、GPIO_Read);
    gpioD_set_raW_value_cansleep(priv->bufen_gpio, 1);
    GPIO_read = gpioD_get_raW_value (priv->bufen_gpio);
    dev_err (&client->dev、"BuFEN_After %d"、GPIO_Read);

    这些变化中是否有错误? 仍然无法正常工作。 我没有获得高输出。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好。
    有什么建议吗?

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

    您能否使用对相应 GPIO_DATAOUT 寄存器的原始写入进行测试?
    另请看 OMAP-GPIO.c 驱动程序、有一个 OMAP-SET_GPIO_dataout_reg ()函数用于切换 DATAOUT 寄存器中的位(GPIO)。

    此致。
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、代码注意事项:
    使用 gpioD_set_value_cansleep()时,需要使用互斥锁 GPIO。 这在内核文档中进行了解释、另请参阅 gpioib-sysfs.c 驱动程序(下面的代码块只是一个示例):
    静态 ssize_t value_store (struct device *dev、
    struct device_attribute *属性、const char * buf、size_t size)

    struct gpiod_data *数据= dev_get_drvdata (dev);
    struct GPIO_desc *desc = data->desc;
    sSIZE 状态;

    mutex_lock (&data->mutex);

    if (!test_bit (flag_in_out、desc->flags)){
    状态=-EPERM;
    }否则{
    长值;

    状态= kstrtol (buf、0、&value);
    如果(status =0){
    gpioD_set_value_cansleep (desc、value);
    status =大小;



    互斥锁(&data->互 斥);

    退货状态;


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

    Yordan、您好!

    您能否使用对相应 GPIO_DATAOUT 寄存器的原始写入进行测试?  
    另请看 OMAP-GPIO.c 驱动程序、有一个 OMAP-SET_GPIO_dataout_reg ()函数用于切换 DATAOUT 寄存器中的位(GPIO)。  


    我在 OMAP-GPIA.c 驱动程序中找到了 OMAP-GPIO_SET_VALUE ()函数。

    使用 omap_gpio_set_value () 和 gpioD_set_value_cansleep ()/gpio_set_raW_value_cansleep ()有何区别? 因为 mt9t11x.c 驱动程序中已使用 gpio_set_value_cansleep()来设置 GPIO 值。 这是不是正确的吗?

    您能浏览 mt9t11x.c 驱动程序吗? 让我知道、如果有、问题是什么?

    使用 gpioD_set_value_cansleep()时,需要使用互斥锁 GPIO。


    我这么做了、但没有令人满意的输出。

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

    Yordan、您好!

    您能否使用对相应 GPIO_DATAOUT 寄存器的原始写入进行测试?

    另请看 OMAP-GPIO.c 驱动程序、有一个 OMAP-SET_GPIO_dataout_reg ()函数用于切换 DATAOUT 寄存器中的位(GPIO)。

    我在 OMAP-GPIA.c 驱动程序中找到了 OMAP-GPIO_SET_VALUE ()函数。

    使用 omap_gpio_set_value () 和 gpioD_set_value_cansleep ()/gpio_set_raW_value_cansleep ()有何区别? 因为 mt9t11x.c 驱动程序中已使用 gpio_set_value_cansleep()来设置 GPIO 值。 这是不是正确的吗?

    您能浏览 mt9t11x.c 驱动程序吗? 让我知道、如果有、问题是什么?

    使用 gpioD_set_value_cansleep()时,需要使用互斥锁 GPIO。

    我这么做了、但没有令人满意的输出。

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

    您能不能提及您要测试哪个 GPIO 引脚? 为您写下寄存器设置、您可以在结束时对其进行测试

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

    我要设置两个 GPIO -
    1)焊球名称- GPMC_AD15、焊球编号-H3。 我想将该引脚配置为 GPIO1_21。 该引脚在硬件中通过电阻器上拉、因此默认情况下可提供3.3V 输出。 我想将其设为低电平。
    2)焊球名称- GPMC_AD12、焊球编号-H1。 我想将该引脚配置为 GPIO1_18。 该引脚在硬件中下拉、默认情况下提供0v。 我想把它提高到高电平。

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

    您好!

    我的坏情况是我错误地读取了 TRM、它的唯一 GPIO1[0:3]仅作为 I/p。


    GPIO1_18寄存器0x4a003430的 Pinmux 应设置为0x5000E

    GPIO1_21寄存器0x4a00343c 的 Pinmux 应设置为0x5000E

    首先从 uboot 尝试此操作、以检查 h/w 是否为 rite:

    MW 命令写入,MD 命令显示:

    0x4ae10134 = FFEBFFFF >将引脚设置为 o/p

    0x4ae10194 = 140000 >以使引脚变为高电平

    0x4ae10190 = 140000 >、以使引脚变为低电平


    谢谢、
    Prabhakar LAD

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

    但根据 am57xx 数据表。 使用多路复用模式14、这些引脚可配置为 IO。 我不清楚这些引脚只是输入。
    您能告诉我这些定义为输入的位置吗? 此外、这些变量在 mux_data.h 文件中声明为输入、但我将其更改为输出。 我弄错了吗?
    我这么做是因为我想使用这些引脚发出的信号(高电平和低电平)来驱动外部硬件。 可以这样做吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    很抱歉、我重写了帖子、请参阅。

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Prabhakar、
    请详细说明-

    MW 命令写入,MD 命令显示:
    0x4ae10134 = FFEBFFFF >将引脚设置为 o/p
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    0x4ae10134 = FFEBFFFF >将引脚设置为 o/p
    这是 GPIO_OE 寄存器的设置、参见 TRM 第7110页、因此引脚18/21被设置为 o/p

    因此、在 uboot 中、如果您执行以下操作:
    MW 0x4a003430 0x5000E >>设置 pinmux
    MW 0x4a00343c 0x5000E >>设置 pinmux

    MW 0x4ae10134 0xFFEBFFFF >>将引脚设为 o/p
    MW 0x4ae10194 0x140000 >>将引脚设为高电平

    此时、如果您对引脚进行示波、则该引脚应处于高电平

    现在将其设为低电平

    MW 0x4ae10190 0x140000 >>> 将引脚置为低电平

    现在、如果您将示波器精简、它应该是低电平。

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    抱歉、这可能会让您感到有点烦恼。 我不是驾驶员开发方面的专家。
    请告诉我在哪里进行这些更改。 我已知的更改文件是- mux_data.h 和 am57xx DTS 文件。 我应该在哪里添加这些更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    要首先测试您的硬件、请在 uboot 停止电路板、然后执行我提到的上述步骤。 当您在 uboot 停止时、会出现一个提示、提示您可以在其中输入命令。 SP MW 是 uboot 中写入内存的命令。

    如果您对硬件在 uboot 中按预期工作感到满意、我将帮助您在 Linux 中完成此操作。

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦、非常感谢。
    我会很快回复您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prabhakar、您好!
    感谢您的详细阐述。
    我得到相应的输出并使其正常工作。

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

    很棒!

    您能否发布在 DTS 中对 GPIO pinmux 所做的更改?

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 mux_data.h 文件中、这些更改在 const struct pad_conf_entry core_padconf_array_ess_x15[]函数中完成、
    // {GPMC_AD12、(M2 | PIN_INPUT | MANUAL_MODE)}、// GPMC_ad12.vin3a_d12 *
    // {GPMC_AD13、(M2 | PIN_INPUT | MANUAL_MODE)}、// GPMC_ad13.vin3A_D13 *
    // {GPMC_AD14、(M2 | PIN_INPUT | MANUAL_MODE)}、// GPMC_ad14.vin3A_D14 *
    // {GPMC_AD15、(XM2 | PIN_INPUT | MANUAL_MODE)}、// GPMC_ad15.vin3A_D15 *

    //新的摄像机 GPIO
    {GPMC_AD12、(M14 | PIN_OUTPUT)}、// GPMC_AD12.OSC_EN GPIO1_18*/
    {GPMC_AD13、(M14 | PIN_OUTPUT)}、// GPMC_ad13.buff _EN GPIO1_19*/
    {GPMC_AD14、(M14 | PIN_OUTPUT)}、// GPMC_ad14.GPIO GPIO1_20*/
    {GPMC_AD15、(M14 | PIN_OUTPUT)}、// GPMC_ad15.CAM_PWR GPIO1_21*/
    {GPMC_A13、(M14 | PIN_OUTPUT)}、// GPMC_A13.GPIO2_3 for Cam_en */
    //新的摄像机 GPIO

    // {McASP1_AXR8、(M14 | PIN_OUTPUT)}、 对于 OSC_EN *、/* McASP1_axr8.GPIO5_10
    // {McASP1_AXR9、(M14 | PIN_OUTPUT)}、 对于 CAM_PWRDN*/,* McASP1_axr9.GPIO5_11
    // {McASP1_AXR10、(M14 | PIN_OUTPUT)}、 /* McASP1_axr10.GPIO5_12 for buff _EN*/
    // {McASP1_AXR11、(M14 | PIN_OUTPLUP)}、 /*用于复位的 McASP1_axr11.GPIO4_17 */
    // {GPIO6_11、(M0 | PIN_OUTPLUP)}、// GPIO6_11.GPIO6_11用于 LCD 模块中的 Cam_en。*/


    在 am57xx-beagle-x15-common.dtsi 文件中、我添加/更改了


    //更改
    GPIO1{&gpio1}
    pinctrl-names ="default";
    pinctrl-0 =<&GPIO1_PINS_DEFAULT>;
    状态="正常";
    };

    GPIO2{
    pinctrl-names ="default";
    pinctrl-0 =<&GPIO2_PINS_DEFAULT>;
    状态="正常";
    };
    //更改


    i2c5{(&I)
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&i2c5_PINS_DEFAULT>;
    时钟频率=<400000>;
    mt9t11x@3C{
    兼容="Aptina、mt9t111";
    reg =<0x33>;

    //原始定义
    // RESET-GPIO =<&GPIO4 17 GPIO_ACTIVE_LOW>;
    // oscen-GPIO =<&GPIO5 10 GPIO_ACTIVE_HIGH_>;
    // POWERDOWN-GPIO =<&GPIO5 11 GPIO_ACTIVE_LOW>;
    // bufen-GPIO =<&GPIO5 12 GPIO_ACTIVE_LOW>;
    // 卡门-GPIO =<&GPIO6 11 GPIO_ACTIVE_LOW>;


    //新定义
    RESET-GPIO =<&GPIO1 20 GPIO_ACTIVE_LOW>;
    oscen-GPIO =<&GPIO1 18 GPIO_ACTIVE_HIGH_>;
    POWERDOT-GPIOs =<&GPIO1 21 GPIO_ACTIVE_LOW>;
    bufen-GPIO =<&GPIO1 19 GPIO_ACTIVE_LOW>;
    卡门-GPIO =<&GPIO2 3 GPIO_ACTIVE_LOW>;
    端口{
    CAM:端点{
    远程端点=<&V vin3a>;
    HSYNC-ACTIVE =<1>;
    vsync-active =<1>;
    pclk-sample =<0>;
    输入时钟频率=<32000000>;
    PIXEL 时钟频率=<96000000 >;
    };
    };
    };
    };

    在同一文件中、我在&dra7_PMX_CORE 节点中添加了以下内容-
    GPIO1_PINS_DEFAULT:GPIO1_PINS_DEFAULT{
    pinctrl-single、pins =<
    0x030 (PIN_OUTPUT | MUX_MODE14)//GPMC_AD12.GPIO1_18
    0x034 (PIN_OUTPUT | MUX_MODE14)//GPMC_AD13.GPIO1_19
    0x038 (PIN_OUTPUT | MUX_MODE14)//GPMC_ad14.GPIO1_20
    0x03C (PIN_OUTPUT | MUX_MODE14)//GPMC_AD15.GPIO1_21

    >;
    };

    GPIO2_PINS_DEFAULT:GPIO2_PINS_DEFAULT{
    pinctrl-single、pins =<
    0x074 (PIN_OUTPUT | MUX_MODE14)//GPMC_A13.GPIO2_3
    >;
    };

    实际上、我的目标是运行摄像头。 已成功完成 p16接头中 i2c 引脚的配置。 只有这些 GPIO 未反映我的更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    在 Linux 启动时,引脚 GPIO1_18/GPIO1_21的状态是什么? (请删除您在驱动程序文件中添加的用于设置 GPIO 引脚的任何代码)

    此外、Linux 中寄存器的值是什么:
    [1] 0x4a003430
    [2] 0x4a00343c

    如果您不知道如何在 Linux 中读取寄存器、请使用[1]并交叉编译此应用程序并在 Linux 启动时使用它。
    [1] free-electrons.com/.../devmem2.c

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    获取值-
    为0x4a003430设置
    映射到地址 bb6fee000的内存。
    地址0x4A003430 (bb6fee430)的值:0x1000E

    用于0x4a00343c
    映射到地址 bb6f4f000的内存。
    地址0x4A00343C (0xb6f4f43c)的值:0x1000E
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 Linux 启动时,引脚 GPIO1_18/GPIO1_21的状态是什么? (请删除您在驱动程序文件中添加的用于设置 GPIO 引脚的任何代码)

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

    我还删除了在驱动程序代码中所做的所有更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我怀疑这些值是由于硬件中10k 电阻器的下拉/上拉所致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Prabhakar、

    有更新吗? :-)

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

    Yordan、您好!

    您能否使用对相应 GPIO_DATAOUT 寄存器的原始写入进行测试?


    我在 uboot 期间检查并确认了原始写入。 工作正常。

    另请看 OMAP-GPIO.c 驱动程序、有一个 OMAP-SET_GPIO_dataout_reg ()函数用于切换 DATAOUT 寄存器中的位(GPIO)。  


    我想问的是、在我当前使用的 mt9t11x.c 中、有一些设置 GPIO 的调用。 那么、使用 OMAP-SET_GPIO_dataout_reg ()有何区别?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prabhakar、您好!
    请更新我的下一步。 我想硬件检查已经完成。 现在需要配置必要的 DTS 文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我正面临与您相同的问题。能否向我解释以下 GPIO 功能?它们的用途是什么以及如何更改它们?
    //原始定义
    //重置 GPIO =<&GPIO4 17 GPIO_ACTIVE_LOW>;
    // oscen-GPIO =<&GPIO5 10 GPIO_ACTIVE_HIGH>;
    //断电 GPIO =<&GPIO5 11 GPIO_ACTIVE_LOW>;
    // bufen-GPIO =<&GPIO5 12 GPIO_ACTIVE_LOW>;
    //假名-GPIO =<&GPIO6 11 GPIO_ACTIVE_LOW>;
    我很困惑、想知道您能否为我提供有关这方面的更多见解。
    提前感谢您、BR、
    Boycchi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这些引脚用于配置 TMDSEVM572x 摄像头模块所需的 GPIO 状态。
    如果您想根据需要更改这些引脚、请查看 am578数据表中的引脚复用设置。