hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// SPDX-License-Identifier: GPL-2.0
/*
 * Allwinner A64 Display Engine 2.0 Bus Driver
 *
 * Copyright (C) 2018 Icenowy Zheng <icenowy@aosc.io>
 */
 
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/soc/sunxi/sunxi_sram.h>
 
static int sun50i_de2_bus_probe(struct platform_device *pdev)
{
   struct device_node *np = pdev->dev.of_node;
   int ret;
 
   ret = sunxi_sram_claim(&pdev->dev);
   if (ret) {
       dev_err(&pdev->dev, "Error couldn't map SRAM to device\n");
       return ret;
   }
 
   of_platform_populate(np, NULL, NULL, &pdev->dev);
 
   return 0;
}
 
static int sun50i_de2_bus_remove(struct platform_device *pdev)
{
   sunxi_sram_release(&pdev->dev);
   return 0;
}
 
static const struct of_device_id sun50i_de2_bus_of_match[] = {
   { .compatible = "allwinner,sun50i-a64-de2", },
   { /* sentinel */ }
};
 
static struct platform_driver sun50i_de2_bus_driver = {
   .probe = sun50i_de2_bus_probe,
   .remove = sun50i_de2_bus_remove,
   .driver = {
       .name = "sun50i-de2-bus",
       .of_match_table = sun50i_de2_bus_of_match,
   },
};
 
builtin_platform_driver(sun50i_de2_bus_driver);