problem description:
- designware-spi controller embedded in SOC
- spi nor flash(MX25U25635F) on evb CAN works well.
- spi nand flash(GD5F2GQ5xExxG) on evb is not working, when entering command "nand device or nand info", u-boot returns "no devices available"
my effort:
**dtsi snippet:**
spi0: spi@80000000 {
compatible = "snps,dw-ssi";
reg = <0x0 0x80000000 0x0 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&sysclk>;
clock-names = "baudclk";
status = "okay";
spi_nand@1 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "spi-nand";
spi-cpha = <1>;
spi-cpol = <1>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
reg = <1>;
spi-max-frequency = <50000000>;
};
};
xxx_defconfig:
CONFIG_CMD_BIND=y
CONFIG_CMD_DM=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MTD=y
CONFIG_CMD_NAND=y
CONFIG_CMD_NAND_TRIMFFS=y
CONFIG_CMD_NAND_LOCK_UNLOCK=y
CONFIG_CMD_NAND_TORTURE=y
CONFIG_DM_MTD=y
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_SPI_NAND=y
CONFIG_SPI=y
CONFIG_DM_SPI=y
xxx_common.h
...
#define CONFIG_SYS_NAND_SELF_INIT
...
drivers\mtd\nand\raw\nand.c
void nand_init(void)
{
...
#ifdef CONFIG_SYS_NAND_SELF_INIT
board_nand_init();
#else
...
#endif
}
Only config spi controller's related register in function board_nand_init( )
,
I want to call spinand_probe()
in this function, but I don't know how to do it.
Can somebody help me? I am a newbie to u-boot. Thanks