brintos

brintos / linux-shallow public Read only

0
0
Text · 8.8 KiB · a1264cc Raw
217 lines · plain
1Nuvoton NPCM7XX Pin Controllers2 3The Nuvoton BMC NPCM7XX Pin Controller multi-function routed through4the multiplexing block, Each pin supports GPIO functionality (GPIOx)5and multiple functions that directly connect the pin to different6hardware blocks.7 8Required 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 17The NPCM7XX has 8 GPIO Banks each GPIO bank supports 32 GPIO.18 19Required GPIO Bank subnode-properties:20- reg 			: specifies physical base address and size of the GPIO21				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 number24				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 28For 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 pin40	An array of strings, each string containing the name of a pin.41	These pin are used for selecting pin configuration.42 43The 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 107Optional 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-strength111 112 slew-rate valid arguments are:113				<0> - slow114				<1> - fast115 drive-strength valid arguments are:116				<2> - 2mA117				<4> - 4mA118				<8> - 8mA119				<12> - 12mA120				<16> - 16mA121				<24> - 24mA122 123For 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 136Required 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 the139  group.140 141The 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_smi155 156For 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 170Examples171========172pinctrl: 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};217