From: lkcl Date: Tue, 27 Feb 2018 23:19:47 +0000 (+0000) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~5852 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9eb95f41acc6951119638c93e763be90fb1ff31a;p=libreriscv.git --- diff --git a/shakti/m_class/pinmux.mdwn b/shakti/m_class/pinmux.mdwn index 693d5e779..aabe2014c 100644 --- a/shakti/m_class/pinmux.mdwn +++ b/shakti/m_class/pinmux.mdwn @@ -7,7 +7,32 @@ * Pinmux ("IOF") for multiplexing several I/O functions onto a single pin -Complex! Covered in [[pinouts]]. The general idea is to target several +Complex! + +# Requirements + +"to create a general-purpose libre-licensed pinmux +module that can be used with a wide range of interfaces that have +Open-Drain, Push-Push *and bi-directional* capabilities, as well as +optional pull-up and pull-down resistors, in an IDENTICAL fashion to +that of ALL major well-known embedded SoCs from ST Micro, Cypress, +Texas Instruments, NXP, Rockchip, Allwinner and many many others". + +## Analysis + +Questions: + +* Can damage occur by outputs being short-circuited to outputs in any way? + A partial analysis showed that because outputs are one-to-many, there should + not be a possibility for that to occur. However what if a function is + bi-directional? +* Is de-bouncing always needed on every input? Is it ok for de-bouncing + to be only done on EINT? + + +# Pinouts Specification + +Covered in [[pinouts]]. The general idea is to target several distinct applications and, by trial-and-error, create a pinmux table that successfully covers all the target scenarios by providing absolutely all required functions for each and every target. A few general rules: