📄 bspatamx31.cpp
字号:
#ifdef ATA_USBH2
DEBUGMSG(1, (TEXT(" BSPATAIOMUXConfig ATA with Host2!\r\n")));
// ATA IOMUX settings
DDKIomuxSetGpr(0x040007f8, 0x00000488);
//Clear ATA_EN and ATA_SEL in CPLD regs
OUTREG16(&g_pPBC->BCTRL2_CLEAR, (1 << PBC_BCTRL2_ATA_EN_LSH));
OUTREG16(&g_pPBC->BCTRL2_CLEAR, (1 << PBC_BCTRL2_ATA_SEL_LSH));
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_RESET_B, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_DMACK, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_DIOW, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_DIOR, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_CS1, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_CS0, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
//H2 and ATA work together
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D6, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D6, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D7, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D7, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D8, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D8, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D9, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D9, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D10, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D10, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D11, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D11, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D12, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D12, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D13, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D13, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D14, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D14, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D15, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D15, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_MCLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_MCLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_VSYNC, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_VSYNC, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_HSYNC, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_HSYNC, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_PIXCLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_PIXCLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_I2C_CLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_I2C_CLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_I2C_DAT, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_I2C_DAT, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
#endif //#ifdef ATA_USBH2
#ifdef ATA_USBH1
DEBUGMSG(1, (TEXT(" BSPATAIOMUXConfig ATA with Host1!\r\n")));
// ATA IOMUX settings
DDKIomuxSetGpr(0x040007f8, 0x00000098);
//Clear ATA_EN and ATA_SEL in CPLD regs
OUTREG16(&g_pPBC->BCTRL2_CLEAR, (1 << PBC_BCTRL2_ATA_EN_LSH));
OUTREG16(&g_pPBC->BCTRL2_CLEAR, (1 << PBC_BCTRL2_ATA_SEL_LSH));
//OUTREG16(&g_pPBC->BCTRL3_SET, 0x04);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_RESET_B, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_DMACK, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_DIOW, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_DIOR, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_CS1, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
DDKIomuxSetPinMux(DDK_IOMUX_PIN_ATA_CS0, DDK_IOMUX_OUT_FUNC, DDK_IOMUX_IN_FUNC);
//H1 and ATA work together
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D6, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D6, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D7, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D7, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D8, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D8, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D9, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D9, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D10, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D10, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D11, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D11, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D12, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D12, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D13, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D13, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D14, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D14, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_D15, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_D15, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_MCLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_MCLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_VSYNC, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_VSYNC, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_HSYNC, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_HSYNC, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_CSI_PIXCLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI_PIXCLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_I2C_CLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_I2C_CLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_I2C_DAT, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_I2C_DAT, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_USBH2_CLK, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_USBH2_CLK, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_USBH2_DIR, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_USBH2_DIR, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_USBH2_STP, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_USBH2_STP, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_USBH2_NXT, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_USBH2_NXT, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_USBH2_DATA0, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_USBH2_DATA0, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
DDKIomuxGetPadConfig(DDK_IOMUX_PAD_USBH2_DATA1, &slew, &drive, &mode, &trig, &pull);
DDKIomuxSetPadConfig(DDK_IOMUX_PAD_USBH2_DATA1, DDK_IOMUX_PAD_SLEW_FAST,DDK_IOMUX_PAD_DRIVE_MAX, mode, trig, pull);
#endif //#ifdef ATA_USBH1
bRet = TRUE;
exit:
return bRet;
}
//------------------------------------------------------------------------------
//
// Function: BSPATAEnableClock
//
// This function enable/disable ATA clock
//
// Parameters:
// bEnable
// [in] TRUE if ATA Clock is to be enabled. FALSE if ATA Clock is
// to be disabled.
//
// Returns:
// TRUE if successfully performed the required action.
//
//------------------------------------------------------------------------------
BOOL BSPATAEnableClock(BOOL bEnable)
{
if (bEnable)
return DDKClockSetGatingMode(DDK_CLOCK_GATE_INDEX_ATA,
DDK_CLOCK_GATE_MODE_ENABLED_ALL);
else
return DDKClockSetGatingMode(DDK_CLOCK_GATE_INDEX_ATA,
DDK_CLOCK_GATE_MODE_DISABLED);
}
//------------------------------------------------------------------------------
//
// Function: BSPATASDMAchannelprio
//
// This function query the ATA module SDMA channel priority
//
// Parameters:
// void
// Returns:
// return ATA SDMA channel priority.
//
//------------------------------------------------------------------------------
UINT8 BSPATASDMAchannelprio(void)
{
return BSP_SDMA_CHNPRI_ATA;
}
//EOF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -