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.

AM3352: AM3352

Part Number: AM3352
Other Parts Discussed in Thread: SYSCONFIG

HI 

目前我司在使用TI的AM3352芯片时,在调试sdio WIFI时,使用mmc3的sdio连接的AP6256。当sdio数据线使用,GPIO1-17,GPIO1-18,GPIO1-19,GPIO1-28这一组时SDIO始终异常,当SDIO数据线使用gpio1-12,goio1-13,gpio1-14,gpio1-15时SDIO就通信正常,wifi也可以正常使用。为了调试我把GPIO1-17,GPIO1-18,GPIO1-19,GPIO1-28这一组配置为普通GPIO,然后去拉高拉低引脚,目前只有GPIO1-28可以正常拉高拉低。感觉GPIO1-17,GPIO1-18,GPIO1-19这三个脚没有正常工作。目前调试没有什么进展,希望公司工程师能够给与指导。现附上设备树配置。谢谢!

#include "am33xx.dtsi"
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
model = "A335X";
compatible = "ti,XXXXXX", "ti,am33xx";
cpus {
cpu@0 {
cpu0-supply = <&dcdc2_reg>;
};
};

vmmcsd_fixed: fixedregulator0 {
compatible = "regulator-fixed";
regulator-name = "vmmcsd_fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
wlan_en_reg: regulator@1 {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
//gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
//enable-active-high;
//startup-delay-us= <70000>;
};

bcmdhd_wifi {
compatible = "android,bcmdhd_wlan";
//gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
wlreg_on = <&wlan_en_reg>;
};

//wifi {
// label = "alientek:green:wifi";
// gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
//};
};

&am33xx_pinmux {
pinctrl-names = "default";
// pinctrl-0 = <&gpio_keys_pinmux &gpio_pins_default &gpio_leds_pinmux &bluetooth_pins>;
pinctrl-0 = <&gpio_keys_pinmux &gpio_pins_default>;

// gpio_leds_pinmux: gpio_leds_pinmux {
// pinctrl-single,pins = <
// AM33XX_IOPAD(0x9a4, PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcasp0_fsx.gpio3_19 */
// >;
// };


};

i2c0_pins: pinmux_i2c0_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
>;
};

i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_d1.i2c1_sda */
AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_scl */
>;
};

// spi1_pins: pinmux_spi1_pins {
// pinctrl-single,pins = <
// // AM33XX_IOPAD(0x908, PIN_INPUT | MUX_MODE2) /* mii1_col.spi1_sclk */
// // AM33XX_IOPAD(0x90c, PIN_OUTPUT | MUX_MODE2) /* mii1_crs.spi1_d0 */
// // AM33XX_IOPAD(0x910, PIN_INPUT | MUX_MODE2) /* mii1_rxerr.spi1_d1 */
// // AM33XX_IOPAD(0x9b0, PIN_OUTPUT | MUX_MODE4) /* xdma_event_intr0.spi1_cs1*/
// >;
// };

uart0_pins: pinmux_uart0_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
>;
};

// Communication with ZigBee
uart1_pins: pinmux_uart1_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
>;
};

// Communication with MCU
uart2_pins: pinmux_uart2_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE1) /* spi0_sclk.uart2_rxd */
AM33XX_IOPAD(0x954, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* spi0_d0.uart2_txd */
>;
};

// External communication
uart3_pins: pinmux_uart3_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x934, PIN_INPUT | MUX_MODE1) /* spi0_cs1.uart3_rxd */
AM33XX_IOPAD(0x938, PIN_OUTPUT | MUX_MODE1) /* ecap0_in_pwm0_out.uart3_txd */
>;
};
// ap6256 bt
uart4_pins: pinmux_uart4_pins {
pinctrl-single,pins = <
// AM33XX_IOPAD(0x968, PIN_INPUT_PULLDOWN | MUX_MODE1) /* uart0_ctsn.uart4_rxd */
// AM33XX_IOPAD(0x96c, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* uart0_rtsn.uart4_txd */
// AM33XX_IOPAD(0x998, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mcasp0_axr0.gpio3_16 */ //RS485_CTR2
>;
};

#if 1
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* (V12) gpmc_clk.mmc2_clk */
AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* (T13) gpmc_csn3.mmc2_cmd */
AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE3) /* (V14) gpmc_a1.mmc2_dat0 */
AM33XX_IOPAD(0x848, PIN_INPUT_PULLUP | MUX_MODE3) /* (U14) gpmc_a2.mmc2_dat1 */
AM33XX_IOPAD(0x84c, PIN_INPUT_PULLUP | MUX_MODE3) /* (T14) gpmc_a3.mmc2_dat2 */
AM33XX_IOPAD(0x878, PIN_INPUT_PULLUP | MUX_MODE3) /* (U18) gpmc_be1n.mmc2_dat3 */
>;
};
#else
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio2_1 gpmc_clk.mmc2_clk */
AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio2_0 gpmc_csn3.mmc2_cmd */
AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio1_12 gpmc_ad12.mmc2_dat0 */
AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio1_13 gpmc_ad13.mmc2_dat1 */
AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio1_14 gpmc_ad14.mmc2_dat2 */
AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio1_15 gpmc_ad15.mmc2_dat3 */
>;
};
#endif
wlan_pins: pinmux_wlan_pins {
// WLAN_WAKEUP TO HOST
// WL_REG_ON
// Power
#if 0
pinctrl-single,pins = <
AM33XX_IOPAD(0x8a0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (R1) lcd_data0.gpio2[6] */
AM33XX_IOPAD(0x8a4, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (R2) lcd_data1.gpio2[7] */
AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE7) /* (V6) gpmc_csn0.gpio1[29] */
>;
#else
pinctrl-single,pins = <
AM33XX_IOPAD(0x890, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_advn_ale.gpio2_2 */
AM33XX_IOPAD(0x89c, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_be0n_cle.gpio2_5 */
AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE7) /* usb1_drvvbus.gpio1_29 */
>;
#endif
};

#if 0
bluetooth_pins: pinmux_bluetooth_pins {
// H to BT WAKEUP
// BT_WAKEUP TO H
pinctrl-single,pins = <
AM33XX_IOPAD(0x8d4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_data13.gpio0_9 */
AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE7) /* lcd_data0.gpio2_6 */
AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE7) /* lcd_data1.gpio2_7 */
>;
};
#endif
gpio_pins_default: gpio_pins_default {
pinctrl-single,pins = <
AM33XX_IOPAD(0x858, PIN_INPUT_PULLUP | MUX_MODE7) /* gps_power gpio1_22 */
AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gps_reset gpio1_24 */

AM33XX_IOPAD(0x86C, PIN_OUTPUT_PULLUP | MUX_MODE7) /* lte-power gpio1_27 */
AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE7) /* mcu gpio0_23 */
AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE7) /* mcu gpio0_26 */

AM33XX_IOPAD(0x868, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* eth0 power gpio1_26 */

AM33XX_IOPAD(0x9B4, PIN_OUTPUT_PULLUP | MUX_MODE7) /* eth0 power gpio0_20 */

AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcu_reset gpio1_16 */
AM33XX_IOPAD(0x864, PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcu_boot gpio1_25 */
>;
};

/*reless AP6256 */
&mmc3 {
status = "okay";
dmas = <&edma_xbar 12 0 1
&edma_xbar 13 0 2>;
vmmc-supply = <&wlan_en_reg>;
dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wlan_pins>;
bus-width = <4>;
wifi-host;
cap-sd-highspeed;
cap-sdio-irq;
};