您好!
我有一个使用 AM3352处理器的定制板。 除了 GPIO 引脚映射外、一切都正常。 唯一工作正常的 GPIO 组是 GPIO 96-127。 此映射包含一个修改后的 AM335x-evmsk.dts 文件、我将使用该文件来测试电路板功能。 如果我在同一个操作系统和电路板上加载 BeagleBone Black AM335x-boneblack.dTB 文件、则 GPIO 地址正确。 下面是我的系统的一些详细信息。
Linux:使用 Yocto 定制
DTS:已修改 AM335x-evmsk.dts (附后)
也尝试过 ti-linux-processor-sdk、结果相同。 从而得出结论、它必须是我的 DTS 文件。
具有 BBB DTB 的电路板输出:
root@BeagleBone:~# cat /sys/kernel/debug/gpio GPIO 0-31、platform/44e07000.gpio、gpio: gpio-6 ( |CD) 在低 IRQ GPIO 32-63、platform/4804c000.gpio 中、gpio: gpio-53 ( ?) 输出低 GPIO-54 ( ?) 输出低 GPIO-55 ( ?) 输出高 电压 GPIO-56 ( ?) 输出低 GPIO 64-95、platform/481ac000.gpio、gpio: gpio96-127、platform/481ae000.gpio、gpio:
您可以看到地址是正确的。 使用自定义 DTB 文件输出:
GPIO 0-31、platform/481ac000.gpio、gpio: gpio32-63、platform/44e07000.gpio、gpio: gpio-38 ( |CD) 在 lo IRQ GPIOs 64-95、platform/4804c000.gpio 中、gpio: gpio96-127、platform/481ae000.gpio 中、gpio: gpio-114 ( |sysfs) 你(们)好 GPIO-115 ( |sysfs) 你(们)好 GPIO-116 ( |sysfs) 你(们)好
在这里、前三个 GPIO 块不正确。 但我能够控制 GPIO 的96-127。
DTS:
/dts-v1/;
#include "am33xx.dtsi"
#include
#include
/{
模型="TI AM335x EVM-SK";
兼容="ti、AM335x-evmsk"、"ti、am33xx";
CPU{
CPU@
@0{CPU0-supply =<&V vdd1_reg>;};MEMORY{DEVICE_TYPE =" MEMORY;reg =<0x800000000 0x0000-supply =< vbd1_regulator
;};<vbt vbulator = 100
–bt = 100 vbt d0000/volt.000+ regulator;}<vbt bt = vbt bt bt bulator = 0 = vbt vbt bt bt bt bt
d/ re稳 压器
;}
};
panel {
compatible ="ti,tilcdc,panel";
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&lcd_pins_default>;
status ="oke";
Panel-info{
ac-bias =<255>;
AC-BIAS-INtrpt =<0>;
DMA-BURST-SZ =<16>;
bpp =<16>;
FDD =<0x80>;
同步边沿 =<0>;
SYNC-Ctrl =<1>;
栅格顺序 =<0>;
第五次 =<0>;
};
显示时序{
320x240{
hactive =<320>;
活跃 =<240>;
后沿 =<5>;
前沿=<58>;
HSYNC - len =<47>;
后沿 =<11>;
垂直前沿=<23>;
垂直同步长度 =<2>;
时钟频率=<12000000>;
HSYNC-ACTIVE =<0>;
VSYNC-ACTIVE =<0>;
};
};
};
}
;&am33xx_pinmux{
LCD_PINS_DEFAULT:pinmux_LCD_PINS_DEFAULT{
pinctrl-single、PINS =<
0xe0 (PIN_OUTPUT | MUX_MODE0)/*(U5) LCD_vSYNC.LCD_vsync */
0xe4 (PIN_OUTPUT | MUX_MODE0)/*(R5) LCD_HSYNC.LCD_HSYNC *
0xe8 (PIN_OUTPUT | MUX_MODE0)/*(V5) LCD_pclk.LCD_pclk */
0xEC (PIN_OUTPUT | MUX_MODE0)/*(R6) LCD_AC_BIAS_EN.LCD_AC_BIAS_EN *
0xA0 (PIN_OUTPUT | MUX_MODE0)/*(R1) LCD_Data0.LCD_Data0 */
0xa4 (PIN_OUTPUT | MUX_MODE0)/*(R2) LCD_data1.LCD_data1 */
0xa8 (PIN_OUTPUT | MUX_MODE0)/*(R3) LCD_data2.LCD_data2 */
0xac (PIN_OUTPUT | MUX_MODE0)/*(R4) LCD_data3.LCD_data3 */
0xb0 (PIN_OUTPUT | MUX_MODE0)/*(T1) LCD_data4.LCD_data4 */
0xb4 (PIN_OUTPUT | MUX_MODE0)/*(T2) LCD_data5.LCD_data5 */
0xb8 (PIN_OUTPUT | MUX_MODE0)/*(T3) LCD_data6.LCD_data6 */
0xbc (PIN_OUTPUT | MUX_MODE0)/*(T4) LCD_data7.LCD_data7 */
0xc0 (PIN_OUTPUT | MUX_MODE0)/*(U1) LCD_data8.LCD_data8 */
0xc4 (PIN_OUTPUT | MUX_MODE0)/*(U2) LCD_data9.LCD_data9 */
0xc8 (PIN_OUTPUT | MUX_MODE0)/*(U3) LCD_data10.LCD_data10 */
0xcc (PIN_OUTPUT | MUX_MODE0)/*(U4) LCD_data11.LCD_data11 */
0xd0 (PIN_OUTPUT | MUX_MODE0)/*(V2) LCD_data12.LCD_data12 */
0xd4 (PIN_OUTPUT | MUX_MODE0)/*(V3) LCD_data13.LCD_data13 *
0xd8 (PIN_OUTPUT | MUX_MODE0)/*(V4) LCD_data14.LCD_data14 */
0xdc (PIN_OUTPUT | MUX_MODE0)/*(T5) LCD_data15.LCD_data15 */
>;
};
eMMC_PINS_DEFAULT:pinmux_eMMC_PINS_DEFAULT{
pinctrl
|-single、pins =< 0x80 (PIN_INPUT_PULLUP | MUX_MODE2)/* GPMC_csn1.mmc1_clk */ 0x84 (PIN_INPUT_PULLUP | MUX_MODE2)/* GPMC_CST_PULLUP * 0x00 (PIN_M0_MODE1)/PIN_MODE1 (0xMC_MODE1)*输入/0xMC_MODE1 (0xMC_MODE1)*输入/0xMC_MODE1)*输入1 (0xMC_MODE1)/0xMC_MODON_MODE1 (0xMC_MODON_MODE1)* 1 (0xMC_MODON_MODE1)* 1 (0xMC_MODON_MODON_MODE1)* 1 (0xMC_MODON_MODE1)* 1 (0xMC_MODON_MODE1)* 1 (0xMC_MODON_MODON_MODON_MODE1)/GPMC_MO
/* GPMC_AD4.mmc1_data4 */
0x14 (PIN_INPUT_PULLUP | MUX_MODE1)/* GPMC_AD5.mmc1_DAT5 *
/ 0x18 (PIN_INPUT_PULLUP | MUX_MODE1)/* GPMC_AD6.mmc1_DAT6 */ 0xMC_7_MODE1*
(PIN_AD1_PULLUP)/*输入
>;
//0x74 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_WPN.GPIO0_31 */
/0x80 (PIN_INPULLUP | MUX_MODE2)/* GPMC_Ccsn1.mmc1_MODEUX_1*
/0x84*(PIN_INPLUM_MODE1*
/0xMC_MODE1*/0xMC_MODE1*/0xMC_PULLUM1*/0xMC_MOD1*/0xMC_MODE1*
输入/0xMC_1*/0xMC_MODE1*/0xMC_1*输入/0xMC_MODON1*/0xMC_MODE1*/0xMC_MODE1*/0xMC_MODE1*输入/0xMC_MODE1*/0xMC_MODE1*/0xMC_MODE1*/0xMC_PULLUM1*/0xMC_1*输入/0xMC_MODE1*/0xMC_1*/0xMC_MODE1*/0xMC_1*
};
cpsw_default:cpsw_default{
pinctrl-single、pins =<
/* Slave 1 */
0x110 (PIN_INPUT_PULLUP | MUX_MODE0)/* mii1_rxmibler.mii1_rx1 *
0x114 (PIN_OUTPLUM_1_1_rxmi0_mi0_1_de0*
)*
(0xmi1_dpulldown */0x1_di0_mi1_di0_m12_mi0_mi1_dpulldown *)*/* mii1_txd1.mii1_txd1 */
0x128 (PIN_OUTPUT 下拉| MUX_MODE0)/* mii1_txd0.mii1_txd0 *
/ 0x12c (PIN_INPUT_PULLUP | MUX_MODE0)/* mii1_rxmi1_mux.0*
(rxmi1_mi1_mu_muxi1_mux.0*输入)* rxmu_muxi0_muxi1_muxi1_muxi1_mu0_muxi1_mu_mux.0*(0x12c)/* mii1_rxd0.mii1_rxd0 *
/>;
};
DaVinci_MDIO_default:DaVinci_MDIO_default{
pinctrl-single、pins =<
/* MDIO */
0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)/* MDIO_DATA.MDIO *=/0x148 (PIN_PULLU_PULLUP
)
*)*/ MDIO_PULLU_PULLUX * 0 + MDIO_PULLUX *(*)/MDIO_PULLUX *)*输出
mmc1_pins:pinmux_mmc1_pins{
pinctrl-single、pins =<
0x160 (PIN_input | MUX_MODE7)/* GPIO0_6 */
>;
};
microMicroSD 引脚默认值:pinmux_microSD 引脚默认值{
pinctrl-single、pins =<
0x100 (PIN_INPUT | MUX_MODE0)/*(G17) mmc0_clk.mmc0_clk *
0x104 (PIN_OUTPUT | MUX_MODE0)/*(G18) mmc0_cmd.mmc0_cmd *
0xFC (PIN_INPUT | MUX_MODE0)/*(G16) mmc0_data0.mmc0_data0 */
0xf8 (PIN_INPUT | MUX_MODE0)/*(G15) mmc0_data1.mmc0_data1 */
0xf4 (PIN_INPUT | MUX_MODE0)/*(F18) mmc0_data2.mmc0_data2 */
0xf0 (PIN_INPUT | MUX_MODE0)/*(F17) mmc0_data3.mmc0_data3 */
0x160 (PIN_INPUT | MUX_MODE5)/*(C15) spi0_CS1.mmc0_sdcd */
>;
};
i2c0_pins_default:pinmux_i2c0_pins_default{
pinctrl-single、pins =<
0x18c (PIN_INPUT | MUX_MODE0)/*(C16) I2C0_SCL.I2C0_SCL */
0x188 (PIN_INPUT | MUX_MODE0)/*(C17) I2C0_SDA.I2C0_SDA *
>;
};
uart0_PINS_DEFAULT:pinmux_uart0_PINS_DEFAULT{
pinctrl-single、pins =<
0x170 (PIN_INPUT | MUX_MODE0)/*(E15) uart0_Rxd.uart0_RxD */
0x174 (PIN_OUTPUT | MUX_MODE0)/*(E16) uart0_TXD.uart0_TXD */
>;
};
uart1_PINS_DEFAULT:pinmux_uart1_PINS_DEFAULT{
pinctrl-single、pins =<
0x180 (PIN_INPUT | MUX_MODE0)/*(D16) uart1_Rxd.uart1_RxD */
0x184 (PIN_OUTPUT | MUX_MODE0)/*(D15) uart1_TXD.uart1_TXD */
>;
};
uart2_pins_default:pinmux_uart2_pins_default{
pinctrl-single、pins =<
0x150 (PIN_INPUT | MUX_MODE1)/*(A17) spi0_SCLk.uart2_RxD */
0x154 (PIN_OUTPUT | MUX_MODE1)/*(B17) spi0_d0.uart2_TXD *
>;
};
uart4_pins_default:pinmux_uart4_pins_default{
pinctrl-single、pins =<
0x70 (PIN_INPUT | MUX_MODE6)/*(T17) GPMC_wait0.uart4_RXD *
0x74 (PIN_OUTPUT | MUX_MODE6)/*(U17) GPMC_WPN.uart4_TXD *
>;
};
GPIO0_PINS_DEFAULT:引脚多路复用_GPIO0_PINS_DEFAULT{
pinctrl-single、pins =<
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]*/
>;
};
GPIO1_PINS_DEFAULT:pinmux_GPIO1_PINS_DEFAULT{
pinctrl-single、pins =<
0x30 (PIN_INPUT | MUX_MODE7)/*(T12) GPMC_AD12.GPIO1[12]*/
0x34 (PIN_INPUT | MUX_MODE7)/*(R12) GPMC_AD13.GPIO1[13]*/
0x38 (PIN_INPUT | MUX_MODE7)/*(V13) GPMC_ad14.GPIO1[14]*/
0x3c (PIN_INPUT | MUX_MODE7)/*(U13) GPMC_ad15.GPIO1[15]*/
0x40 (PIN_INPUT | MUX_MODE7)/*(R13) GPMC_a0.GPIO1[16]*/
0x48 (PIN_INPUT | MUX_MODE7)/*(U14) GPMC_A2.GPIO1[18]*/
0x78 (PIN_INPUT | MUX_MODE7)/*(U18) GPMC_BE1n.GPIO1[28]*/
>;
};
GPIO3_PINS_DEFAULT:引脚多路复用_GPIO3_PIN_DEFAULT{
pinctrl-single、pins =<
0x1a0 (PIN_INPUT | MUX_MODE7)/*(B12) McASP0_aclkr.GPIO3[18]*/
0x1a4 (PIN_INPUT | MUX_MODE7)/*(C13) McASP0_fsr.GPIO3[19]*/
0x1a8 (PIN_INPUT | MUX_MODE7)/*(D13) McASP0_axr1.GPIO3[20]*/
>;
};
SPI1_PINS_DEFAULT:pinmux_SPI1_PINS_DEFAULT{
pinctrl-single、pins =<
0x190 (PIN_OUTPUT | MUX_MODE3)/*(A13) McASP0_aclkx.SPI1_SCLK */
0x194 (PIN_OUTPUT | MUX_MODE3)/*(B13) McASP0_FSX.SPI1_d0 */
0x198 (PIN_OUTPUT | MUX_MODE3)/*(D12) McASP0_axr0.SPI1_D1 */
0x19c (PIN_OUTPUT | MUX_MODE3)//(C12) McASP0_ahclkr.SPI1_cs0 */
>;
};
};
&SPI1 {
pinctrl-names ="default";
pinctrl-0 =<&SPI1_PINS_DEFAULT>;
状态="正常";
LCD 控制@0{
兼容="linux、spidev";
SPI-max-frequency =<1000000>;
reg =<0>;
};
};
&GPIO0{
pinctrl-names ="default";
pinctrl-0 =<&GPIO0_PINS_DEFAULT>;
状态="确定";
};
&GPIO1{
pinctrl-names ="default";
pinctrl-0 =<&GPIO1_PINS_DEFAULT>;
状态="确定";
};
&GPIO3{
pinctrl-names ="default";
pinctrl-0 =<&GPIO3_PINS_DEFAULT>;
状态="确定";
}
;uart0{
pinctrl-names ="默认值";
pinctrl-0 =< uart0_PINs_default>;
状态="确定";
}
;uart1{
pinctr-names ="默认值";
pinctr-0 =< uart1_PINs_default>;
状态="
默认
值"pinctrl";"uarttrl"
="默认值4;pinctrl"="默认值4;pinctrl"="uartns";pintrl"="默认值="uartns";pintrl"
status ="确定";
}
;&i2c0{
pinctrl-names ="默认值";
pinctrl-0 =<&i2c0_PINS_DEFAULT>;
status ="确定";
时钟频率=<400000>;
TPS:TPS@2D{
reg =<0x2D>;
};
};wkup_ti_ipc
{
<Vt7 m3-tt、pin t-tri;ti-tt = GPIO 切换
TI、SCALE-DATA-FW ="AM335x-EVM-SCALE-DATA.bin";
};
#include "tps65910.dtsi"
&TPS{
vcc1-supply =<VBAT>;
vcc2-supply =<VBAT>;
vcc3-supply =<VBAT>;
vcc4-supply =<VBAT>
;vcc4-supply = Vcc5;vccAT>
vcc6-supply =<VBAT>;
vcc7-supply =<VBAT>;
vcci-supply =<VBAT>;
regulators{
vrtc_reg:regulator@0{
regulator-always-on;
};
VIO_reg:regulators-always-on@
@1{vdd1_reg:regulators-forma-d/
最大值= 1.500V
、最大值= Vmand-voltagors-on;v-rand-v-rulators-on = 1.52v/v-voltagors-on;v-rand-rand-v-v-rand-v-rand-v-rand-v-v-v-randv-v-v-v-v-randv-randv-v-
};
vdd2_reg:电脑控制器@3{
/* VDD_CORE 电压限制0.95V - 1.1V、容差为+/-4%*
/电脑控制器名称="VDD_CORE ";
电脑控制器最小值微伏=<912500>;
电脑控制器最大值微伏=<1150000>;
电脑控制器启动开启;
电脑控制器始终开启;
@;vdd3_reg:电脑控制器@4
@电脑控制器常开;};vdig1_reg:电脑控制器@5@电脑控制器常开;};vdig2_reg:电脑控制器@6 {电脑控制器常开;};vpll_reg:电脑控制器
@
@
@7 {电脑控制器常开;vdac_regul器
= v33x2-rev;v3-regul器=v33x1-v2-v2-vrev;v3-regul器= v3-v3-v3-v3-v3-regr;v3-v3-v3-v3-regr;v3-regr = v3-v3-v3-v3-v3-v3-v3-v3-v3-v3-regr;v3-v3-v3-v3-v3-v-regr;v3-v3-v3-v3-v3-v3-v3-v3-v3-v3-v3-v3-v3-v3-v
稳压器常开;
};
};
};
&cpsw_emac0{
phy_id =<&Davinc_mdio>、<0>;
phy-mode ="MII";
}
;&Mac{
pinctrl-names ="默认值";
pinctr-0 =<&cpsw_default>;
status ="确定";
};
&Davinc_mdio{
="
默认值"=
";"mcinc0";}
VMMC-SUPPLY =<&VMMC_REG>;
总线宽度=<0x4>;
pinctrl-names ="default";
pinctrl-0 =<&mmc1_PINs>;
CD-GPIO =<&GPIO0 6 GPIO_ACTIVE_LOW>;
状态="oke";
};
&mmc2{
&VMMC-supply =<&mctrlnation>
;<VMctrloverview_status="microcontrollers"="microcontrollers";<&trloverview"="microcontrollers-names"-="microcontrollers";VMMC-names"-="microcontrollers";"microcontrollers"="
};
sham{
status ="确定";
};
&AES{
status ="确定";
}
;&LCDC{
状态="确定";
}
;&RTC{
系统电源控制器;
};
我已经复用的其他引脚也可以工作、LCD、SPI、I2C0和 UART 都没有问题。 我必须是 DTS 和 GPIO 的一部分。
我们非常感谢您的任何帮助或建议、并提前感谢您的帮助或建议。