From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933369AbcHaJYz (ORCPT ); Wed, 31 Aug 2016 05:24:55 -0400 Received: from mail-qk0-f194.google.com ([209.85.220.194]:36756 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759445AbcHaJYw (ORCPT ); Wed, 31 Aug 2016 05:24:52 -0400 MIME-Version: 1.0 In-Reply-To: <1472569333.5703.24.camel@toradex.com> References: <1472045838-22628-1-git-send-email-mirza.krak@gmail.com> <1472045838-22628-4-git-send-email-mirza.krak@gmail.com> <1472569333.5703.24.camel@toradex.com> From: Mirza Krak Date: Wed, 31 Aug 2016 11:24:50 +0200 Message-ID: Subject: Re: [PATCH v2 3/6] dt/bindings: Add bindings for Tegra GMI controller To: Marcel Ziswiler Cc: "jonathanh@nvidia.com" , "swarren@wwwdotorg.org" , "thierry.reding@gmail.com" , "linux-kernel@vger.kernel.org" , "robh+dt@kernel.org" , "mturquette@baylibre.com" , "pgaikwad@nvidia.com" , "linux@armlinux.org.uk" , "devicetree@vger.kernel.org" , "gnurou@gmail.com" , "mark.rutland@arm.com" , "linux-arm-kernel@lists.infradead.org" , "pdeschrijver@nvidia.com" , "sboyd@codeaurora.org" , "linux-tegra@vger.kernel.org" , "linux-clk@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2016-08-30 17:02 GMT+02:00 Marcel Ziswiler : > On Wed, 2016-08-24 at 15:37 +0200, Mirza Krak wrote: >> From: Mirza Krak >> >> Document the devicetree bindings for the Generic Memory Interface >> (GMI) >> bus driver found on Tegra SOCs. >> >> Signed-off-by: Mirza Krak >> --- >> Changes in v2: >> - Updated examples and some information based on comments from Jon >> Hunter. >> >> .../devicetree/bindings/bus/nvidia,tegra20-gmi.txt | 132 >> +++++++++++++++++++++ >> 1 file changed, 132 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt >> >> diff --git a/Documentation/devicetree/bindings/bus/nvidia,tegra20- >> gmi.txt b/Documentation/devicetree/bindings/bus/nvidia,tegra20- >> gmi.txt >> new file mode 100644 >> index 0000000..8c1e15f >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt >> @@ -0,0 +1,132 @@ >> +Device tree bindings for NVIDIA Tegra Generic Memory Interface bus >> + >> +The Generic Memory Interface bus enables memory transfers between >> internal and >> +external memory. Can be used to attach various high speed devices >> such as >> +synchronous/asynchronous NOR, FPGA, UARTS and more. >> + >> +The actual devices are instantiated from the child nodes of a GMI >> node. >> + >> +Required properties: >> + - compatible : Should contain one of the following: >> + For Tegra20 must contain "nvidia,tegra20-gmi". >> + For Tegra30 must contain "nvidia,tegra30-gmi". >> + - reg: Should contain GMI controller registers location and length. >> + - clocks: Must contain an entry for each entry in clock-names. >> + - clock-names: Must include the following entries: "gmi" >> + - resets : Must contain an entry for each entry in reset-names. >> + - reset-names : Must include the following entries: "gmi" >> + - #address-cells: The number of cells used to represent physical >> base >> + addresses in the GMI address space. Should be 1. >> + - #size-cells: The number of cells used to represent the size of an >> address >> + range in the GMI address space. Should be 1. >> + - ranges: Must be set up to reflect the memory layout with three >> integer values >> + for each chip-select line in use (only one entry is supported, >> see below >> + comments): >> + >> + >> +Note that the GMI controller does not have any internal chip-select >> address >> +decoding, because of that chip-selects either need to be managed via >> software >> +or by employing external chip-select decoding logic. >> + >> +If external chip-select logic is used to support multiple devices it >> is assumed >> +that the devices use the same timing and so are probably the same >> type. It also >> +assumes that they can fit in the 256MB address range. In this case >> only one >> +child device is supported which represents the active chip-select >> line, see >> +examples for more insight. >> + >> +Required child cs node properties: >> + - reg: First entry should contain the active chip-select number >> + >> +Optional child cs node properties: >> + >> + - nvidia,snor-data-width-32bit: Use 32bit data-bus, default is >> 16bit. >> + - nvidia,snor-mux-mode: Enable address/data MUX mode. >> + - nvidia,snor-rdy-active-before-data: Assert RDY signal one cycle >> before data. >> + If omitted it will be asserted with data. >> + - nvidia,snor-rdy-inv: RDY signal is active high >> + - nvidia,snor-adv-inv: ADV signal is active high >> + - nvidia,snor-oe-inv: WE/OE signal is active high >> + - nvidia,snor-cs-inv: CS signal is active high >> + >> + Note that there is some special handling for the timing values. >> + From Tegra TRM: >> + Programming 0 means 1 clock cycle: actual cycle = programmed cycle >> + 1 >> + >> + - nvidia,snor-muxed-width: Number of cycles MUX address/data >> asserted on the >> + bus. Valid values are 0-15, default is 1 >> + - nvidia,snor-hold-width: Number of cycles CE stays asserted after >> the >> + de-assertion of WR_N (in case of SLAVE/MASTER Request) or OE_N >> + (in case of MASTER Request). Valid values are 0-15, default is 1 >> + - nvidia,snor-adv-width: Number of cycles during which ADV stays >> asserted. >> + Valid values are 0-15, default is 1. >> + - nvidia,snor-ce-width: Number of cycles before CE is asserted. >> + Valid values are 0-15, default is 4 >> + - nvidia,snor-we-width: Number of cycles during which WE stays >> asserted. >> + Valid values are 0-15, default is 1 >> + - nvidia,snor-oe-width: Number of cycles during which OE stays >> asserted. >> + Valid values are 0-255, default is 1 >> + - nvidia,snor-wait-width: Number of cycles before READY is >> asserted. >> + Valid values are 0-255, default is 3 >> + >> +Example with two SJA1000 CAN controllers connected to the GMI bus. >> We wrap the >> +controllers with a simple-bus node since they are all connected to >> the same >> +chip-select (CS4), in this example external address decoding is >> provided: >> + >> +gmi@70090000 { > > It's actually 70009000. I actually noticed this all ready, so should be fixed in the upcoming V3. Thank you for your review. Best Regards Mirza