Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753719AbbK3Pvv (ORCPT ); Mon, 30 Nov 2015 10:51:51 -0500 Received: from muru.com ([72.249.23.125]:49291 "EHLO muru.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751484AbbK3Pvt (ORCPT ); Mon, 30 Nov 2015 10:51:49 -0500 Date: Mon, 30 Nov 2015 07:51:42 -0800 From: Tony Lindgren To: Peter Ujfalusi Cc: vinod.koul@intel.com, arnd@arndb.de, andy.shevchenko@gmail.com, linux-mmc@vger.kernel.org, nsekhar@ti.com, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, dmaengine@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [RFC v02 03/15] dmaengine: core: Introduce new, universal API to request a channel Message-ID: <20151130155142.GZ2517@atomide.com> References: <1448891145-10766-1-git-send-email-peter.ujfalusi@ti.com> <1448891145-10766-4-git-send-email-peter.ujfalusi@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1448891145-10766-4-git-send-email-peter.ujfalusi@ti.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2247 Lines: 62 Hi, * Peter Ujfalusi [151130 05:49]: > > For each dmaengine driver an array of DMA device, slave and the parameter > for the filter function needs to be added: > > static struct dma_filter_map da830_edma_map[] = { > DMA_FILTER_ENTRY("davinci-mcasp.0", "rx", EDMA_CTLR_CHAN(0, 0)), > DMA_FILTER_ENTRY("davinci-mcasp.0", "tx", EDMA_CTLR_CHAN(0, 1)), > DMA_FILTER_ENTRY("davinci-mcasp.1", "rx", EDMA_CTLR_CHAN(0, 2)), > DMA_FILTER_ENTRY("davinci-mcasp.1", "tx", EDMA_CTLR_CHAN(0, 3)), > DMA_FILTER_ENTRY("davinci-mcasp.2", "rx", EDMA_CTLR_CHAN(0, 4)), > DMA_FILTER_ENTRY("davinci-mcasp.2", "tx", EDMA_CTLR_CHAN(0, 5)), > DMA_FILTER_ENTRY("spi_davinci.0", "rx", EDMA_CTLR_CHAN(0, 14)), > DMA_FILTER_ENTRY("spi_davinci.0", "tx", EDMA_CTLR_CHAN(0, 15)), > DMA_FILTER_ENTRY("da830-mmc.0", "rx", EDMA_CTLR_CHAN(0, 16)), > DMA_FILTER_ENTRY("da830-mmc.0", "tx", EDMA_CTLR_CHAN(0, 17)), > DMA_FILTER_ENTRY("spi_davinci.1", "rx", EDMA_CTLR_CHAN(0, 18)), > DMA_FILTER_ENTRY("spi_davinci.1", "tx", EDMA_CTLR_CHAN(0, 19)), > }; FYI, if the EDMA_CTRL_CHAN above is just the evtmux registers, those can be handled with the pinctrl framework. It seems that would allow leaving out some of the built-in look up data, and have the mux parts handled by a proper device driver. Below is a sample from the dm81xx platform for reference. SoC dtsi file: evtmux: pinmux@f90 { compatible = "pinctrl-single"; reg = <0xf90 0x40>; #address-cells = <1>; #size-cells = <0>; pinctrl-single,register-width = <8>; pinctrl-single,function-mask = <0x1f>; }; Board specific dts file: &evtmux { sd2_edma_pins: pinmux_sd2_edma_pins { pinctrl-single,pins = < 8 1 /* use SDTXEVT1 for EDMA instead of MCASP0TX */ 9 2 /* use SDRXEVT1 for EDMA instead of MCASP0RX */ >; }; }; Dynamic muxing of these channels can be done too using the pinctrl framework named modes, but probably is not a good idea in the case of SD card and MaASP in case something goes wrong :) Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/