static void mipi_initialize(void) { int clkid = DISP_CLOCK_MIPI; int index = 0; NX_TIEOFF_Set(TIEOFFINDEX_OF_MIPI0_NX_DPSRAM_1R1W_EMAA, 3); NX_TIEOFF_Set(TIEOFFINDEX_OF_MIPI0_NX_DPSRAM_1R1W_EMAB, 3); if (! nxp_soc_peri_reset_status(NX_MIPI_GetResetNumber(index, NX_MIPI_RST))) { nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST)); nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST_DSI_I)); nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_S)); nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_M)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST_DSI_I)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_S)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_M)); } /* BASE : CLKGEN, MIPI */ NX_DISPTOP_CLKGEN_SetBaseAddress(clkid, (U32)IO_ADDRESS(NX_DISPTOP_CLKGEN_GetPhysicalAddress(clkid))); NX_DISPTOP_CLKGEN_SetClockPClkMode(clkid, NX_PCLKMODE_ALWAYS); /* BASE : MIPI */ NX_MIPI_Initialize(); NX_MIPI_SetBaseAddress(0, IO_ADDRESS(NX_MIPI_GetPhysicalAddress(0))); NX_MIPI_OpenModule(0); }
static void mipi_resume(struct disp_process_dev *pdev) { int index = 0; PM_DBGOUT("%s\n", __func__); NX_TIEOFF_Set(TIEOFFINDEX_OF_MIPI0_NX_DPSRAM_1R1W_EMAA, 3); NX_TIEOFF_Set(TIEOFFINDEX_OF_MIPI0_NX_DPSRAM_1R1W_EMAB, 3); if (! nxp_soc_peri_reset_status(NX_MIPI_GetResetNumber(index, NX_MIPI_RST))) { nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST)); nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST_DSI_I)); nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_S)); nxp_soc_peri_reset_enter(NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_M)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST_DSI_I)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_S)); nxp_soc_peri_reset_exit (NX_MIPI_GetResetNumber(index, NX_MIPI_RST_PHY_M)); } mipi_enable(pdev, 1); }
static void spi_init(int ch) { char name[10] = {0}; int req_clk = 0; struct clk *clk ; if(0 == ch) req_clk = CFG_SPI0_CLK; else if(1 == ch) req_clk = CFG_SPI1_CLK; else if(2 == ch) req_clk = CFG_SPI2_CLK; sprintf(name,"nxp-spi.%d",(unsigned char)ch); clk = clk_get(NULL,name); clk_set_rate(clk,req_clk); nxp_soc_peri_reset_enter(reset[ch][0]); nxp_soc_peri_reset_enter(reset[ch][1]); nxp_soc_peri_reset_exit (reset[ch][0]); nxp_soc_peri_reset_exit (reset[ch][1]); clk_enable(clk); }