brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · 563ce73 Raw
94 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Driver for the Synopsys DesignWare DMA Controller4 *5 * Copyright (C) 2013 Intel Corporation6 */7 8#ifndef _DMA_DW_INTERNAL_H9#define _DMA_DW_INTERNAL_H10 11#include <linux/dma/dw.h>12 13#include "regs.h"14 15int do_dma_probe(struct dw_dma_chip *chip);16int do_dma_remove(struct dw_dma_chip *chip);17 18void do_dw_dma_on(struct dw_dma *dw);19void do_dw_dma_off(struct dw_dma *dw);20 21int do_dw_dma_disable(struct dw_dma_chip *chip);22int do_dw_dma_enable(struct dw_dma_chip *chip);23 24extern bool dw_dma_filter(struct dma_chan *chan, void *param);25 26#ifdef CONFIG_ACPI27void dw_dma_acpi_controller_register(struct dw_dma *dw);28void dw_dma_acpi_controller_free(struct dw_dma *dw);29#else /* !CONFIG_ACPI */30static inline void dw_dma_acpi_controller_register(struct dw_dma *dw) {}31static inline void dw_dma_acpi_controller_free(struct dw_dma *dw) {}32#endif /* !CONFIG_ACPI */33 34struct platform_device;35 36#ifdef CONFIG_OF37struct dw_dma_platform_data *dw_dma_parse_dt(struct platform_device *pdev);38void dw_dma_of_controller_register(struct dw_dma *dw);39void dw_dma_of_controller_free(struct dw_dma *dw);40#else41static inline struct dw_dma_platform_data *dw_dma_parse_dt(struct platform_device *pdev)42{43	return NULL;44}45static inline void dw_dma_of_controller_register(struct dw_dma *dw) {}46static inline void dw_dma_of_controller_free(struct dw_dma *dw) {}47#endif48 49struct dw_dma_chip_pdata {50	const struct dw_dma_platform_data *pdata;51	int (*probe)(struct dw_dma_chip *chip);52	int (*remove)(struct dw_dma_chip *chip);53	struct dw_dma_chip *chip;54};55 56static __maybe_unused const struct dw_dma_chip_pdata dw_dma_chip_pdata = {57	.probe = dw_dma_probe,58	.remove = dw_dma_remove,59};60 61static const struct dw_dma_platform_data idma32_pdata = {62	.nr_channels = 8,63	.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,64	.chan_priority = CHAN_PRIORITY_ASCENDING,65	.block_size = 131071,66	.nr_masters = 1,67	.data_width = {4},68	.multi_block = {1, 1, 1, 1, 1, 1, 1, 1},69};70 71static __maybe_unused const struct dw_dma_chip_pdata idma32_chip_pdata = {72	.pdata = &idma32_pdata,73	.probe = idma32_dma_probe,74	.remove = idma32_dma_remove,75};76 77static const struct dw_dma_platform_data xbar_pdata = {78	.nr_channels = 8,79	.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,80	.chan_priority = CHAN_PRIORITY_ASCENDING,81	.block_size = 131071,82	.nr_masters = 1,83	.data_width = {4},84	.quirks = DW_DMA_QUIRK_XBAR_PRESENT,85};86 87static __maybe_unused const struct dw_dma_chip_pdata xbar_chip_pdata = {88	.pdata = &xbar_pdata,89	.probe = idma32_dma_probe,90	.remove = idma32_dma_remove,91};92 93#endif /* _DMA_DW_INTERNAL_H */94