162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Allwinner A64 Display Engine 2.0 Bus Driver 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2018 Icenowy Zheng <icenowy@aosc.io> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <linux/of_platform.h> 962306a36Sopenharmony_ci#include <linux/platform_device.h> 1062306a36Sopenharmony_ci#include <linux/soc/sunxi/sunxi_sram.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cistatic int sun50i_de2_bus_probe(struct platform_device *pdev) 1362306a36Sopenharmony_ci{ 1462306a36Sopenharmony_ci struct device_node *np = pdev->dev.of_node; 1562306a36Sopenharmony_ci int ret; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci ret = sunxi_sram_claim(&pdev->dev); 1862306a36Sopenharmony_ci if (ret) 1962306a36Sopenharmony_ci return dev_err_probe(&pdev->dev, ret, 2062306a36Sopenharmony_ci "Couldn't map SRAM to device\n"); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci of_platform_populate(np, NULL, NULL, &pdev->dev); 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci return 0; 2562306a36Sopenharmony_ci} 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistatic int sun50i_de2_bus_remove(struct platform_device *pdev) 2862306a36Sopenharmony_ci{ 2962306a36Sopenharmony_ci sunxi_sram_release(&pdev->dev); 3062306a36Sopenharmony_ci return 0; 3162306a36Sopenharmony_ci} 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistatic const struct of_device_id sun50i_de2_bus_of_match[] = { 3462306a36Sopenharmony_ci { .compatible = "allwinner,sun50i-a64-de2", }, 3562306a36Sopenharmony_ci { /* sentinel */ } 3662306a36Sopenharmony_ci}; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_cistatic struct platform_driver sun50i_de2_bus_driver = { 3962306a36Sopenharmony_ci .probe = sun50i_de2_bus_probe, 4062306a36Sopenharmony_ci .remove = sun50i_de2_bus_remove, 4162306a36Sopenharmony_ci .driver = { 4262306a36Sopenharmony_ci .name = "sun50i-de2-bus", 4362306a36Sopenharmony_ci .of_match_table = sun50i_de2_bus_of_match, 4462306a36Sopenharmony_ci }, 4562306a36Sopenharmony_ci}; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_cibuiltin_platform_driver(sun50i_de2_bus_driver); 48