The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pinctrl/nuvoton,npcm7xx-pinctrl.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 Nuvoton NPCM7XX Pin Controllers
    2 
    3 The Nuvoton BMC NPCM7XX Pin Controller multi-function routed through
    4 the multiplexing block, Each pin supports GPIO functionality (GPIOx)
    5 and multiple functions that directly connect the pin to different
    6 hardware blocks.
    7 
    8 Required properties:
    9 - #address-cells : should be 1.
   10 - #size-cells    : should be 1.
   11 - compatible     : "nuvoton,npcm750-pinctrl" for Poleg NPCM7XX.
   12 - ranges         : defines mapping ranges between pin controller node (parent)
   13                         to GPIO bank node (children).
   14 
   15 === GPIO Bank Subnode ===
   16 
   17 The NPCM7XX has 8 GPIO Banks each GPIO bank supports 32 GPIO.
   18 
   19 Required GPIO Bank subnode-properties:
   20 - reg                   : specifies physical base address and size of the GPIO
   21                                 bank registers.
   22 - gpio-controller       : Marks the device node as a GPIO controller.
   23 - #gpio-cells           : Must be <2>. The first cell is the gpio pin number
   24                                 and the second cell is used for optional parameters.
   25 - interrupts            : contain the GPIO bank interrupt with flags for falling edge.
   26 - gpio-ranges           : defines the range of pins managed by the GPIO bank controller.
   27 
   28 For example, GPIO bank subnodes like the following:
   29         gpio0: gpio@f0010000 {
   30                 gpio-controller;
   31                 #gpio-cells = <2>;
   32                 reg = <0x0 0x80>;
   33                 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
   34                 gpio-ranges = <&pinctrl 0 0 32>;
   35         };
   36 
   37 === Pin Mux Subnode ===
   38 
   39 - pin: A string containing the name of the pin
   40         An array of strings, each string containing the name of a pin.
   41         These pin are used for selecting pin configuration.
   42 
   43 The following are the list of pins available:
   44         "GPIO0/IOX1DI", "GPIO1/IOX1LD", "GPIO2/IOX1CK", "GPIO3/IOX1D0",
   45         "GPIO4/IOX2DI/SMB1DSDA", "GPIO5/IOX2LD/SMB1DSCL", "GPIO6/IOX2CK/SMB2DSDA",
   46         "GPIO7/IOX2D0/SMB2DSCL", "GPIO8/LKGPO1", "GPIO9/LKGPO2", "GPIO10/IOXHLD",
   47         "GPIO11/IOXHCK", "GPIO12/GSPICK/SMB5BSCL", "GPIO13/GSPIDO/SMB5BSDA",
   48         "GPIO14/GSPIDI/SMB5CSCL", "GPIO15/GSPICS/SMB5CSDA", "GPIO16/LKGPO0",
   49         "GPIO17/PSPI2DI/SMB4DEN","GPIO18/PSPI2D0/SMB4BSDA", "GPIO19/PSPI2CK/SMB4BSCL",
   50         "GPIO20/SMB4CSDA/SMB15SDA", "GPIO21/SMB4CSCL/SMB15SCL", "GPIO22/SMB4DSDA/SMB14SDA",
   51         "GPIO23/SMB4DSCL/SMB14SCL", "GPIO24/IOXHDO", "GPIO25/IOXHDI", "GPIO26/SMB5SDA",
   52         "GPIO27/SMB5SCL", "GPIO28/SMB4SDA", "GPIO29/SMB4SCL", "GPIO30/SMB3SDA",
   53         "GPIO31/SMB3SCL", "GPIO32/nSPI0CS1","SPI0D2", "SPI0D3", "GPIO37/SMB3CSDA",
   54         "GPIO38/SMB3CSCL", "GPIO39/SMB3BSDA", "GPIO40/SMB3BSCL", "GPIO41/BSPRXD",
   55         "GPO42/BSPTXD/STRAP11", "GPIO43/RXD1/JTMS2/BU1RXD", "GPIO44/nCTS1/JTDI2/BU1CTS",
   56         "GPIO45/nDCD1/JTDO2", "GPIO46/nDSR1/JTCK2", "GPIO47/nRI1/JCP_RDY2",
   57         "GPIO48/TXD2/BSPTXD", "GPIO49/RXD2/BSPRXD", "GPIO50/nCTS2", "GPO51/nRTS2/STRAP2",
   58         "GPIO52/nDCD2", "GPO53/nDTR2_BOUT2/STRAP1", "GPIO54/nDSR2", "GPIO55/nRI2",
   59         "GPIO56/R1RXERR", "GPIO57/R1MDC", "GPIO58/R1MDIO", "GPIO59/SMB3DSDA",
   60         "GPIO60/SMB3DSCL", "GPO61/nDTR1_BOUT1/STRAP6", "GPO62/nRTST1/STRAP5",
   61         "GPO63/TXD1/STRAP4", "GPIO64/FANIN0", "GPIO65/FANIN1", "GPIO66/FANIN2",
   62         "GPIO67/FANIN3", "GPIO68/FANIN4", "GPIO69/FANIN5", "GPIO70/FANIN6", "GPIO71/FANIN7",
   63         "GPIO72/FANIN8", "GPIO73/FANIN9", "GPIO74/FANIN10", "GPIO75/FANIN11",
   64         "GPIO76/FANIN12", "GPIO77/FANIN13","GPIO78/FANIN14", "GPIO79/FANIN15",
   65         "GPIO80/PWM0", "GPIO81/PWM1", "GPIO82/PWM2", "GPIO83/PWM3", "GPIO84/R2TXD0",
   66         "GPIO85/R2TXD1", "GPIO86/R2TXEN", "GPIO87/R2RXD0", "GPIO88/R2RXD1", "GPIO89/R2CRSDV",
   67         "GPIO90/R2RXERR", "GPIO91/R2MDC", "GPIO92/R2MDIO", "GPIO93/GA20/SMB5DSCL",
   68         "GPIO94/nKBRST/SMB5DSDA", "GPIO95/nLRESET/nESPIRST", "GPIO96/RG1TXD0",
   69         "GPIO97/RG1TXD1", "GPIO98/RG1TXD2", "GPIO99/RG1TXD3","GPIO100/RG1TXC",
   70         "GPIO101/RG1TXCTL", "GPIO102/RG1RXD0", "GPIO103/RG1RXD1", "GPIO104/RG1RXD2",
   71         "GPIO105/RG1RXD3", "GPIO106/RG1RXC", "GPIO107/RG1RXCTL", "GPIO108/RG1MDC",
   72         "GPIO109/RG1MDIO", "GPIO110/RG2TXD0/DDRV0", "GPIO111/RG2TXD1/DDRV1",
   73         "GPIO112/RG2TXD2/DDRV2", "GPIO113/RG2TXD3/DDRV3", "GPIO114/SMB0SCL",
   74         "GPIO115/SMB0SDA", "GPIO116/SMB1SCL", "GPIO117/SMB1SDA", "GPIO118/SMB2SCL",
   75         "GPIO119/SMB2SDA", "GPIO120/SMB2CSDA", "GPIO121/SMB2CSCL", "GPIO122/SMB2BSDA",
   76         "GPIO123/SMB2BSCL", "GPIO124/SMB1CSDA", "GPIO125/SMB1CSCL","GPIO126/SMB1BSDA",
   77         "GPIO127/SMB1BSCL", "GPIO128/SMB8SCL", "GPIO129/SMB8SDA", "GPIO130/SMB9SCL",
   78         "GPIO131/SMB9SDA", "GPIO132/SMB10SCL", "GPIO133/SMB10SDA","GPIO134/SMB11SCL",
   79         "GPIO135/SMB11SDA", "GPIO136/SD1DT0", "GPIO137/SD1DT1", "GPIO138/SD1DT2",
   80         "GPIO139/SD1DT3", "GPIO140/SD1CLK", "GPIO141/SD1WP", "GPIO142/SD1CMD",
   81         "GPIO143/SD1CD/SD1PWR", "GPIO144/PWM4", "GPIO145/PWM5", "GPIO146/PWM6",
   82         "GPIO147/PWM7", "GPIO148/MMCDT4", "GPIO149/MMCDT5", "GPIO150/MMCDT6",
   83         "GPIO151/MMCDT7", "GPIO152/MMCCLK", "GPIO153/MMCWP", "GPIO154/MMCCMD",
   84         "GPIO155/nMMCCD/nMMCRST", "GPIO156/MMCDT0", "GPIO157/MMCDT1", "GPIO158/MMCDT2",
   85         "GPIO159/MMCDT3", "GPIO160/CLKOUT/RNGOSCOUT", "GPIO161/nLFRAME/nESPICS",
   86         "GPIO162/SERIRQ", "GPIO163/LCLK/ESPICLK", "GPIO164/LAD0/ESPI_IO0",
   87         "GPIO165/LAD1/ESPI_IO1", "GPIO166/LAD2/ESPI_IO2", "GPIO167/LAD3/ESPI_IO3",
   88         "GPIO168/nCLKRUN/nESPIALERT", "GPIO169/nSCIPME", "GPIO170/nSMI", "GPIO171/SMB6SCL",
   89         "GPIO172/SMB6SDA", "GPIO173/SMB7SCL", "GPIO174/SMB7SDA", "GPIO175/PSPI1CK/FANIN19",
   90         "GPIO176/PSPI1DO/FANIN18", "GPIO177/PSPI1DI/FANIN17", "GPIO178/R1TXD0",
   91         "GPIO179/R1TXD1", "GPIO180/R1TXEN", "GPIO181/R1RXD0", "GPIO182/R1RXD1",
   92         "GPIO183/SPI3CK", "GPO184/SPI3D0/STRAP9", "GPO185/SPI3D1/STRAP10",
   93         "GPIO186/nSPI3CS0", "GPIO187/nSPI3CS1", "GPIO188/SPI3D2/nSPI3CS2",
   94         "GPIO189/SPI3D3/nSPI3CS3", "GPIO190/nPRD_SMI", "GPIO191", "GPIO192", "GPIO193/R1CRSDV",
   95         "GPIO194/SMB0BSCL", "GPIO195/SMB0BSDA", "GPIO196/SMB0CSCL", "GPIO197/SMB0DEN",
   96         "GPIO198/SMB0DSDA", "GPIO199/SMB0DSCL", "GPIO200/R2CK", "GPIO201/R1CK",
   97         "GPIO202/SMB0CSDA", "GPIO203/FANIN16", "GPIO204/DDC2SCL", "GPIO205/DDC2SDA",
   98         "GPIO206/HSYNC2", "GPIO207/VSYNC2", "GPIO208/RG2TXC/DVCK", "GPIO209/RG2TXCTL/DDRV4",
   99         "GPIO210/RG2RXD0/DDRV5", "GPIO211/RG2RXD1/DDRV6", "GPIO212/RG2RXD2/DDRV7",
  100         "GPIO213/RG2RXD3/DDRV8", "GPIO214/RG2RXC/DDRV9", "GPIO215/RG2RXCTL/DDRV10",
  101         "GPIO216/RG2MDC/DDRV11", "GPIO217/RG2MDIO/DVHSYNC", "GPIO218/nWDO1",
  102         "GPIO219/nWDO2", "GPIO220/SMB12SCL", "GPIO221/SMB12SDA", "GPIO222/SMB13SCL",
  103         "GPIO223/SMB13SDA", "GPIO224/SPIXCK", "GPO225/SPIXD0/STRAP12", "GPO226/SPIXD1/STRAP13",
  104         "GPIO227/nSPIXCS0", "GPIO228/nSPIXCS1", "GPO229/SPIXD2/STRAP3", "GPIO230/SPIXD3",
  105         "GPIO231/nCLKREQ", "GPI255/DACOSEL"
  106 
  107 Optional Properties:
  108  bias-disable, bias-pull-down, bias-pull-up, input-enable,
  109  input-disable, output-high, output-low, drive-push-pull,
  110  drive-open-drain, input-debounce, slew-rate, drive-strength
  111 
  112  slew-rate valid arguments are:
  113                                 <0> - slow
  114                                 <1> - fast
  115  drive-strength valid arguments are:
  116                                 <2> - 2mA
  117                                 <4> - 4mA
  118                                 <8> - 8mA
  119                                 <12> - 12mA
  120                                 <16> - 16mA
  121                                 <24> - 24mA
  122 
  123 For example, pinctrl might have pinmux subnodes like the following:
  124 
  125         gpio0_iox1d1_pin: gpio0-iox1d1-pin {
  126                 pins = "GPIO0/IOX1DI";
  127                 output-high;
  128         };
  129         gpio0_iox1ck_pin: gpio0-iox1ck-pin {
  130                 pins = "GPIO2/IOX1CK";
  131                 output_high;
  132         };
  133 
  134 === Pin Group Subnode ===
  135 
  136 Required pin group subnode-properties:
  137 - groups : A string containing the name of the group to mux.
  138 - function: A string containing the name of the function to mux to the
  139   group.
  140 
  141 The following are the list of the available groups and functions :
  142         smb0, smb0b, smb0c, smb0d, smb0den, smb1, smb1b, smb1c, smb1d,
  143         smb2, smb2b, smb2c, smb2d, smb3, smb3b, smb3c, smb3d, smb4, smb4b,
  144         smb4c, smb4d, smb4den, smb5, smb5b, smb5c, smb5d, ga20kbc, smb6,
  145         smb7, smb8, smb9, smb10, smb11, smb12, smb13, smb14, smb15, fanin0,
  146         fanin1, fanin2, fanin3, fanin4, fanin5, fanin6, fanin7, fanin8,
  147         fanin9, fanin10, fanin11 fanin12 fanin13, fanin14, fanin15, faninx,
  148         pwm0, pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, rg1, rg1mdio, rg2,
  149         rg2mdio, ddr, uart1, uart2, bmcuart0a, bmcuart0b, bmcuart1, iox1,
  150         iox2, ioxh, gspi, mmc, mmcwp, mmccd, mmcrst, mmc8, r1, r1err, r1md,
  151         r2, r2err, r2md, sd1, sd1pwr, wdog1, wdog2, scipme, sci, serirq,
  152         jtag2, spix, spixcs1, pspi1, pspi2, ddc, clkreq, clkout, spi3, spi3cs1,
  153         spi3quad, spi3cs2, spi3cs3, spi0cs1, lpc, lpcclk, espi, lkgpo0, lkgpo1,
  154         lkgpo2, nprd_smi
  155 
  156 For example, pinctrl might have group subnodes like the following:
  157         r1err_pins: r1err-pins {
  158                 groups = "r1err";
  159                 function = "r1err";
  160         };
  161         r1md_pins: r1md-pins {
  162                 groups = "r1md";
  163                 function = "r1md";
  164         };
  165         r1_pins: r1-pins {
  166                 groups = "r1";
  167                 function = "r1";
  168         };
  169 
  170 Examples
  171 ========
  172 pinctrl: pinctrl@f0800000 {
  173         #address-cells = <1>;
  174         #size-cells = <1>;
  175         compatible = "nuvoton,npcm750-pinctrl";
  176         ranges = <0 0xf0010000 0x8000>;
  177 
  178         gpio0: gpio@f0010000 {
  179                 gpio-controller;
  180                 #gpio-cells = <2>;
  181                 reg = <0x0 0x80>;
  182                 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  183                 gpio-ranges = <&pinctrl 0 0 32>;
  184         };
  185 
  186         ....
  187 
  188         gpio7: gpio@f0017000 {
  189                 gpio-controller;
  190                 #gpio-cells = <2>;
  191                 reg = <0x7000 0x80>;
  192                 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
  193                 gpio-ranges = <&pinctrl 0 224 32>;
  194         };
  195 
  196         gpio0_iox1d1_pin: gpio0-iox1d1-pin {
  197                 pins = "GPIO0/IOX1DI";
  198                 output-high;
  199         };
  200 
  201         iox1_pins: iox1-pins {
  202                 groups = "iox1";
  203                 function = "iox1";
  204         };
  205         iox2_pins: iox2-pins {
  206                 groups = "iox2";
  207                 function = "iox2";
  208         };
  209 
  210         ....
  211 
  212         clkreq_pins: clkreq-pins {
  213                 groups = "clkreq";
  214                 function = "clkreq";
  215         };
  216 };

Cache object: c6cae76ea604f8488ad9448a6e0769fe


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.