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/AM3352:GPIO 配置

Guru**** 2542620 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/618360/linux-am3352-gpio-configuration

器件型号:AM3352

工具/软件:Linux

您好!

我正在使用内核位于 am3352上的嵌入式 Linux 系统。 以前、我只在一些没有内核的简单嵌入式系统上工作、在这里我直接控制硬件。 与内核相关的所有内容对我来说都是全新的。  现在、我卡在器件树上。 希望有人能帮助我。

我有一个 FPGA 通过 GPMC 连接到 am3352。 两个引脚被设计为 GPIO_OUTPUT 以触发 FPGA 配置和复位、两个引脚被设计为 GPIO_INPUT 以发送 READ 和中断请求信号。 FPGA 配置存储在 SPI 闪存中。 将 GPIO_1拉低时、FPGA 将引导至 SPI 闪存。  

我借用了 AM335x-evmsk.dts 中的内容、添加了以下部分:

am33xx_pinmux{(am33xx_pinmux)}

    pinctrl-names ="default";

    pinctrl-0 =<&GPIO_keys_s0 &clkout2_pin &DDR3_VTT_TOGGLE>;

    GPMC_PINS:GPMC_PINS{

        pinctrl-single、pins =<

            0xb8 (PIN_INPUT | MUX_MODE7)/* LCD_data6.GPIO2_12 *

            0xc4 (PIN_OUTPUT | MUX_MODE7)/* LCD_data9.GPIO2_15 */

            0xdc (PIN_OUTPUT | MUX_MODE7)/* LCD_data15.GPIO0_11 */

            0x1b0 (PIN_INPUT | MUX_MODE7)/* GPIO0_19、中断请求$

        >;

    };

};

在 am33xx.dtsi 中、我编辑了如下 GPMC 节点:

OCP{

        兼容="简单总线";

        #address-cells =<1>;

        大小单元格=<1>;

        范围;

        ti、hwmods ="l3_main";

        GPMC:GPMC@50000000{

            兼容="ti、am3352-gpmC";

            ti、hwmds ="gpmC";

            TI、无空闲启动;

            REG =<0x50000000 0x2000>;

            GPMC、num-cs =<7>;

            GPMC、num-waitpins =<0>;

            #address-cells =<2>;

            大小单元格=<1>;

            pinctrl-names ="default";

            pinctrl-0 =<&GPMC_PINs>;

            范围=<0 0x80000 0x1000000>、/*CS0 @addr 转换为0x80000、s$

                 1 0 0x9000000 0x1000000>;/*CS0是主域,CS1是次域 FPGA$

            FPGA_CS0@0、0{

                状态="正常";

                #address-cells =<1>;

                大小单元格=<1>;

                reg =<0 0x1000000>;

                组宽度=<2>;

                GPMC、同步读取;

                GPMC、同步写入;

                GPMC、突发读取;

                GPMC、突发写入;

                GPMC、mux-add-data =<2>;/*地址和数据复用*/

                GPMC、cs-on-ns =<0>;

                GPMC、cs-rd-off-ns =<80>;/*4个 FCLK 时钟周期*/

                GPMC、cs-wr-off-ns =<80>;/*4个 FCLK 时钟周期*/

                GPMC、Adv-on-ns =<0>;

                GPMC、Adv-rd -关闭-ns =<20>;/*1个 FCLK 时钟周期*/

                GPMC、Adv-wr-off-ns =<20>;/*1个 FCLK 时钟周期*/

                GPMC、OE-ON-ns =<20>;/*1个 FCLK 时钟周期*/

                GPMC、OE-OFF-ns =<80>;/*4个 FCLK 时钟周期*/

                GPMC、WE-ON-ns =<40>;/*2个 FCLK 时钟周期*/

                GPMC、WE-OFF-ns =<60>;/*3个 FCLK 时钟周期*/

                GPMC、rd 周期-ns =<80>;/*4个 FCLK 时钟周期*/

                GPMC、功率周期-ns =<80>;/*4个 FCLK 时钟周期*/

                GPMC、ACCESS ns =<60>;/*3个 FCLK 时钟周期*/

                GPMC、page-burst 访问-ns =<20>;/*1个 FCLK 时钟周期*/

                GPMC、总线翻转-ns =<0>;/*0 FCLK 时钟周期*/

                GPMC、cycle2cycle-delay-ns =<20>;/*1个 FCLK 时钟周期*/

                GPMC、wr-data-mux-bus-ns =<20>;/*1个 FCLK 时钟周期*/

                GPMC、wr 访问-ns =<60>;/*3个 FCLK 时钟周期*/

                GPMC、cycle2cycle-samecsen =<20>;/*1个 FCLK 时钟周期*/

                GPMC、cycle2cycle-diffcsen =<20>;/*1个 FCLK 时钟周期*/

            };

        };

};

那么、我的困惑是:

上述修改是否足以将这些引脚配置为 GPIO 以便我的外部 FPGA 使用它们? 在 DTS 或其他内核文件中还有其他要编辑的内容吗?

2.如何在用户空间中上拉/下拉输出引脚以操作 FPGA 并从 FPGA 读取输入引脚?

3.如果 引脚被设计为输出、脉冲低电平触发 FPGA 复位、我是否应将 pinctrl-single、引脚设置为 PIN_OUTPUT 或 PIN_OUTPUT 下拉?

我们非常感谢您的任何建议。

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

    您好、英杰、

    [引用用户="营 杰 gu"]
    上述修改是否足以将这些引脚配置为 GPIO 以便我的外部 FPGA 使用它们? 在 DTS 或其他内核文件中还有其他要编辑的内容吗?
    [/报价]
    将引脚复用为 GPIO 应该就足够了。

    [引用用户="营 杰 gu"]
    2.如何在用户空间中上拉/下拉输出引脚以操作 FPGA 并从 FPGA 读取输入引脚?
    [/报价]
    请查看 wiki 页面。

    [引用用户="营 杰 gu"]
    3.如果引脚被设计为输出、脉冲低电平触发 FPGA 复位、我是否应将 pinctrl-single、引脚设置为 PIN_OUTPUT 或 PIN_OUTPUT 下拉?
    [/报价]
    请检查 帖子。

    此致、
    Kemal