From d3cc9e9d41cb7730727d278b1f135653dce3477f Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Wed, 4 Apr 2018 10:32:39 +0100 Subject: [PATCH] add documentation on pinfunctions --- src/spec/pinfunctions.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/spec/pinfunctions.py b/src/spec/pinfunctions.py index 15b0cb5..770f2f2 100644 --- a/src/spec/pinfunctions.py +++ b/src/spec/pinfunctions.py @@ -2,8 +2,10 @@ """ define functions here, with their pin names and the pin type. - each function returns a list (or an object with a __getitem__ function) - containing pin name plus type specifications. + each function returns a pair of lists + (or objects with a __getitem__ function) + + the first list (or object) contains pin name plus type specifications. the type is: @@ -25,6 +27,18 @@ generated, and that's not known immediately (or it would be if every single one of the functions below had a start and end parameter added). see spec.interfaces.PinGen class slice on pingroup + + the second list is the names of pins that are part of an inout bus. + this list of pins (a ganged group) will need to be changed under + the control of the function, as a group. for example: sdmmc's + D0-D3 pins are in-out, they all change from input to output at + the same time under the control of the function, therefore there's + no point having multiple in-out switch/control wires, as the + sdmmc is never going to do anything other than switch this entire + bank all at once. so in this particular example, sdmmc returns: + + (['CMD+', 'CLK+', 'D0*', 'D1*', 'D2*', 'D3*'] # pin names + ['D0*', 'D1*', 'D2*', 'D3*']) # ganged bus names """ -- 2.30.2