Commit f782086a authored by Vinod Koul's avatar Vinod Koul
Browse files

Merge branch 'topic/sh' into for-linus

parents 56e8e1a1 47ec4cf4
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
* Renesas R-Car (RZ/G) DMA Controller Device Tree bindings

Renesas R-Car Generation 2 SoCs have multiple multi-channel DMA
Renesas R-Car (Gen 2/3) and RZ/G SoCs have multiple multi-channel DMA
controller instances named DMAC capable of serving multiple clients. Channels
can be dedicated to specific clients or shared between a large number of
clients.
@@ -20,6 +20,8 @@ Required Properties:
		- "renesas,dmac-r8a7744" (RZ/G1N)
		- "renesas,dmac-r8a7745" (RZ/G1E)
		- "renesas,dmac-r8a77470" (RZ/G1C)
		- "renesas,dmac-r8a774a1" (RZ/G2M)
		- "renesas,dmac-r8a774c0" (RZ/G2E)
		- "renesas,dmac-r8a7790" (R-Car H2)
		- "renesas,dmac-r8a7791" (R-Car M2-W)
		- "renesas,dmac-r8a7792" (R-Car V2H)
+3 −0
Original line number Diff line number Diff line
@@ -6,6 +6,9 @@ Required Properties:
	  - "renesas,r8a7743-usb-dmac" (RZ/G1M)
	  - "renesas,r8a7744-usb-dmac" (RZ/G1N)
	  - "renesas,r8a7745-usb-dmac" (RZ/G1E)
	  - "renesas,r8a77470-usb-dmac" (RZ/G1C)
	  - "renesas,r8a774a1-usb-dmac" (RZ/G2M)
	  - "renesas,r8a774c0-usb-dmac" (RZ/G2E)
	  - "renesas,r8a7790-usb-dmac" (R-Car H2)
	  - "renesas,r8a7791-usb-dmac" (R-Car M2-W)
	  - "renesas,r8a7793-usb-dmac" (R-Car M2-N)
+2 −10
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
#
# DMA engine configuration for sh
#
@@ -12,7 +13,7 @@ config RENESAS_DMA

config SH_DMAE_BASE
	bool "Renesas SuperH DMA Engine support"
	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
	depends on SUPERH || COMPILE_TEST
	depends on !SUPERH || SH_DMA
	depends on !SH_DMA_API
	default y
@@ -30,15 +31,6 @@ config SH_DMAE
	help
	  Enable support for the Renesas SuperH DMA controllers.

if SH_DMAE

config SH_DMAE_R8A73A4
	def_bool y
	depends on ARCH_R8A73A4
	depends on OF

endif

config RCAR_DMAC
	tristate "Renesas R-Car Gen2 DMA Controller"
	depends on ARCH_RENESAS || COMPILE_TEST
+0 −1
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ obj-$(CONFIG_SH_DMAE_BASE) += shdma-base.o shdma-of.o
#

shdma-y := shdmac.o
shdma-$(CONFIG_SH_DMAE_R8A73A4) += shdma-r8a73a4.o
shdma-objs := $(shdma-y)
obj-$(CONFIG_SH_DMAE) += shdma.o

drivers/dma/sh/shdma-r8a73a4.c

deleted100644 → 0
+0 −74
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
 * Renesas SuperH DMA Engine support for r8a73a4 (APE6) SoCs
 *
 * Copyright (C) 2013 Renesas Electronics, Inc.
 */
#include <linux/sh_dma.h>

#include "shdma-arm.h"

static const unsigned int dma_ts_shift[] = SH_DMAE_TS_SHIFT;

static const struct sh_dmae_slave_config dma_slaves[] = {
	{
		.chcr		= CHCR_TX(XMIT_SZ_32BIT),
		.mid_rid	= 0xd1,		/* MMC0 Tx */
	}, {
		.chcr		= CHCR_RX(XMIT_SZ_32BIT),
		.mid_rid	= 0xd2,		/* MMC0 Rx */
	}, {
		.chcr		= CHCR_TX(XMIT_SZ_32BIT),
		.mid_rid	= 0xe1,		/* MMC1 Tx */
	}, {
		.chcr		= CHCR_RX(XMIT_SZ_32BIT),
		.mid_rid	= 0xe2,		/* MMC1 Rx */
	},
};

#define DMAE_CHANNEL(a, b)				\
	{						\
		.offset         = (a) - 0x20,		\
		.dmars          = (a) - 0x20 + 0x40,	\
		.chclr_bit	= (b),			\
		.chclr_offset	= 0x80 - 0x20,		\
	}

static const struct sh_dmae_channel dma_channels[] = {
	DMAE_CHANNEL(0x8000, 0),
	DMAE_CHANNEL(0x8080, 1),
	DMAE_CHANNEL(0x8100, 2),
	DMAE_CHANNEL(0x8180, 3),
	DMAE_CHANNEL(0x8200, 4),
	DMAE_CHANNEL(0x8280, 5),
	DMAE_CHANNEL(0x8300, 6),
	DMAE_CHANNEL(0x8380, 7),
	DMAE_CHANNEL(0x8400, 8),
	DMAE_CHANNEL(0x8480, 9),
	DMAE_CHANNEL(0x8500, 10),
	DMAE_CHANNEL(0x8580, 11),
	DMAE_CHANNEL(0x8600, 12),
	DMAE_CHANNEL(0x8680, 13),
	DMAE_CHANNEL(0x8700, 14),
	DMAE_CHANNEL(0x8780, 15),
	DMAE_CHANNEL(0x8800, 16),
	DMAE_CHANNEL(0x8880, 17),
	DMAE_CHANNEL(0x8900, 18),
	DMAE_CHANNEL(0x8980, 19),
};

const struct sh_dmae_pdata r8a73a4_dma_pdata = {
	.slave		= dma_slaves,
	.slave_num	= ARRAY_SIZE(dma_slaves),
	.channel	= dma_channels,
	.channel_num	= ARRAY_SIZE(dma_channels),
	.ts_low_shift	= TS_LOW_SHIFT,
	.ts_low_mask	= TS_LOW_BIT << TS_LOW_SHIFT,
	.ts_high_shift	= TS_HI_SHIFT,
	.ts_high_mask	= TS_HI_BIT << TS_HI_SHIFT,
	.ts_shift	= dma_ts_shift,
	.ts_shift_num	= ARRAY_SIZE(dma_ts_shift),
	.dmaor_init     = DMAOR_DME,
	.chclr_present	= 1,
	.chclr_bitwise	= 1,
};
Loading