/* Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd. */ #include "mipi_rx_mod_init.h" #include "ot_mipi_rx.h" #include "ot_osal.h" static int mipi_rx_probe(struct platform_device *pdev) { int mipi_rx_irq; void *mipi_rx_regs = NULL; struct resource *mem = NULL; mem = osal_platform_get_resource_byname(pdev, IORESOURCE_MEM, "mipi"); mipi_rx_regs = devm_ioremap_resource(&pdev->dev, mem); if (IS_ERR(mipi_rx_regs)) { dev_err(&pdev->dev, "mipi_rx remap mem error.\n"); return PTR_ERR(mipi_rx_regs); } mipi_rx_set_init_regs(mipi_rx_regs); mipi_rx_irq = osal_platform_get_irq_byname(pdev, "mipi"); if (mipi_rx_irq <= 0) { dev_err(&pdev->dev, "can not find mipi_rx IRQ\n"); } mipi_rx_set_init_irq((unsigned int)mipi_rx_irq); return mipi_rx_mod_init(); } static int mipi_rx_remove(struct platform_device *pdev) { ot_mipi_rx_unused(pdev); mipi_rx_mod_exit(); mipi_rx_set_init_regs(NULL); return 0; } static const struct of_device_id mipi_rx_match[] = { { .compatible = "vendor,mipi" }, {}, }; MODULE_DEVICE_TABLE(of, mipi_rx_match); static struct platform_driver mipi_rx_driver = { .probe = mipi_rx_probe, .remove = mipi_rx_remove, .driver = { .name = "mipi_rx", .of_match_table = mipi_rx_match, }, }; module_platform_driver(mipi_rx_driver); MODULE_AUTHOR("Digital Media Team."); MODULE_DESCRIPTION("Mipi_Rx Driver"); MODULE_VERSION("OT_VERSION = OT_mipi @OT_MPP"); MODULE_LICENSE("GPL");