mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.2 KiB
52 lines
1.2 KiB
/* |
|
* Header for the SUDMAC driver |
|
* |
|
* Copyright (C) 2013 Renesas Solutions Corp. |
|
* |
|
* This is free software; you can redistribute it and/or modify |
|
* it under the terms of version 2 of the GNU General Public License as |
|
* published by the Free Software Foundation. |
|
*/ |
|
#ifndef SUDMAC_H |
|
#define SUDMAC_H |
|
|
|
#include <linux/dmaengine.h> |
|
#include <linux/shdma-base.h> |
|
#include <linux/types.h> |
|
|
|
/* Used by slave DMA clients to request DMA to/from a specific peripheral */ |
|
struct sudmac_slave { |
|
struct shdma_slave shdma_slave; /* Set by the platform */ |
|
}; |
|
|
|
/* |
|
* Supplied by platforms to specify, how a DMA channel has to be configured for |
|
* a certain peripheral |
|
*/ |
|
struct sudmac_slave_config { |
|
int slave_id; |
|
}; |
|
|
|
struct sudmac_channel { |
|
unsigned long offset; |
|
unsigned long config; |
|
unsigned long wait; /* The configuable range is 0 to 3 */ |
|
unsigned long dint_end_bit; |
|
}; |
|
|
|
struct sudmac_pdata { |
|
const struct sudmac_slave_config *slave; |
|
int slave_num; |
|
const struct sudmac_channel *channel; |
|
int channel_num; |
|
}; |
|
|
|
/* Definitions for the sudmac_channel.config */ |
|
#define SUDMAC_TX_BUFFER_MODE BIT(0) |
|
#define SUDMAC_RX_END_MODE BIT(1) |
|
|
|
/* Definitions for the sudmac_channel.dint_end_bit */ |
|
#define SUDMAC_DMA_BIT_CH0 BIT(0) |
|
#define SUDMAC_DMA_BIT_CH1 BIT(1) |
|
|
|
#endif
|
|
|