107b734fbSManivannan SadhasivamBitmain BM1880 Pin Controller 207b734fbSManivannan Sadhasivam 307b734fbSManivannan SadhasivamThis binding describes the pin controller found in the BM1880 SoC. 407b734fbSManivannan Sadhasivam 507b734fbSManivannan SadhasivamRequired Properties: 607b734fbSManivannan Sadhasivam 707b734fbSManivannan Sadhasivam- compatible: Should be "bitmain,bm1880-pinctrl" 807b734fbSManivannan Sadhasivam- reg: Offset and length of pinctrl space in SCTRL. 907b734fbSManivannan Sadhasivam 1007b734fbSManivannan SadhasivamPlease refer to pinctrl-bindings.txt in this directory for details of the 1107b734fbSManivannan Sadhasivamcommon pinctrl bindings used by client devices, including the meaning of the 1207b734fbSManivannan Sadhasivamphrase "pin configuration node". 1307b734fbSManivannan Sadhasivam 1407b734fbSManivannan SadhasivamThe pin configuration nodes act as a container for an arbitrary number of 1507b734fbSManivannan Sadhasivamsubnodes. Each of these subnodes represents some desired configuration for a 1607b734fbSManivannan Sadhasivampin, a group, or a list of pins or groups. This configuration for BM1880 SoC 17752a7403SManivannan Sadhasivamincludes pinmux and various pin configuration parameters, such as pull-up, 18752a7403SManivannan Sadhasivamslew rate etc... 1907b734fbSManivannan Sadhasivam 2007b734fbSManivannan SadhasivamEach configuration node can consist of multiple nodes describing the pinmux 2107b734fbSManivannan Sadhasivamoptions. The name of each subnode is not important; all subnodes should be 2207b734fbSManivannan Sadhasivamenumerated and processed purely based on their content. 2307b734fbSManivannan Sadhasivam 2407b734fbSManivannan SadhasivamThe following generic properties as defined in pinctrl-bindings.txt are valid 2507b734fbSManivannan Sadhasivamto specify in a pinmux subnode: 2607b734fbSManivannan Sadhasivam 2707b734fbSManivannan SadhasivamRequired Properties: 2807b734fbSManivannan Sadhasivam 2907b734fbSManivannan Sadhasivam- pins: An array of strings, each string containing the name of a pin. 3007b734fbSManivannan Sadhasivam Valid values for pins are: 3107b734fbSManivannan Sadhasivam 3207b734fbSManivannan Sadhasivam MIO0 - MIO111 3307b734fbSManivannan Sadhasivam 3407b734fbSManivannan Sadhasivam- groups: An array of strings, each string containing the name of a pin 3507b734fbSManivannan Sadhasivam group. Valid values for groups are: 3607b734fbSManivannan Sadhasivam 3707b734fbSManivannan Sadhasivam nand_grp, spi_grp, emmc_grp, sdio_grp, eth0_grp, pwm0_grp, 3807b734fbSManivannan Sadhasivam pwm1_grp, pwm2_grp, pwm3_grp, pwm4_grp, pwm5_grp, pwm6_grp, 3907b734fbSManivannan Sadhasivam pwm7_grp, pwm8_grp, pwm9_grp, pwm10_grp, pwm11_grp, pwm12_grp, 4007b734fbSManivannan Sadhasivam pwm13_grp, pwm14_grp, pwm15_grp, pwm16_grp, pwm17_grp, 4107b734fbSManivannan Sadhasivam pwm18_grp, pwm19_grp, pwm20_grp, pwm21_grp, pwm22_grp, 4207b734fbSManivannan Sadhasivam pwm23_grp, pwm24_grp, pwm25_grp, pwm26_grp, pwm27_grp, 4307b734fbSManivannan Sadhasivam pwm28_grp, pwm29_grp, pwm30_grp, pwm31_grp, pwm32_grp, 4407b734fbSManivannan Sadhasivam pwm33_grp, pwm34_grp, pwm35_grp, pwm36_grp, i2c0_grp, 4507b734fbSManivannan Sadhasivam i2c1_grp, i2c2_grp, i2c3_grp, i2c4_grp, uart0_grp, uart1_grp, 4607b734fbSManivannan Sadhasivam uart2_grp, uart3_grp, uart4_grp, uart5_grp, uart6_grp, 4707b734fbSManivannan Sadhasivam uart7_grp, uart8_grp, uart9_grp, uart10_grp, uart11_grp, 4807b734fbSManivannan Sadhasivam uart12_grp, uart13_grp, uart14_grp, uart15_grp, gpio0_grp, 4907b734fbSManivannan Sadhasivam gpio1_grp, gpio2_grp, gpio3_grp, gpio4_grp, gpio5_grp, 5007b734fbSManivannan Sadhasivam gpio6_grp, gpio7_grp, gpio8_grp, gpio9_grp, gpio10_grp, 5107b734fbSManivannan Sadhasivam gpio11_grp, gpio12_grp, gpio13_grp, gpio14_grp, gpio15_grp, 5207b734fbSManivannan Sadhasivam gpio16_grp, gpio17_grp, gpio18_grp, gpio19_grp, gpio20_grp, 5307b734fbSManivannan Sadhasivam gpio21_grp, gpio22_grp, gpio23_grp, gpio24_grp, gpio25_grp, 5407b734fbSManivannan Sadhasivam gpio26_grp, gpio27_grp, gpio28_grp, gpio29_grp, gpio30_grp, 5507b734fbSManivannan Sadhasivam gpio31_grp, gpio32_grp, gpio33_grp, gpio34_grp, gpio35_grp, 5607b734fbSManivannan Sadhasivam gpio36_grp, gpio37_grp, gpio38_grp, gpio39_grp, gpio40_grp, 5707b734fbSManivannan Sadhasivam gpio41_grp, gpio42_grp, gpio43_grp, gpio44_grp, gpio45_grp, 5807b734fbSManivannan Sadhasivam gpio46_grp, gpio47_grp, gpio48_grp, gpio49_grp, gpio50_grp, 5907b734fbSManivannan Sadhasivam gpio51_grp, gpio52_grp, gpio53_grp, gpio54_grp, gpio55_grp, 6007b734fbSManivannan Sadhasivam gpio56_grp, gpio57_grp, gpio58_grp, gpio59_grp, gpio60_grp, 6107b734fbSManivannan Sadhasivam gpio61_grp, gpio62_grp, gpio63_grp, gpio64_grp, gpio65_grp, 6207b734fbSManivannan Sadhasivam gpio66_grp, gpio67_grp, eth1_grp, i2s0_grp, i2s0_mclkin_grp, 6307b734fbSManivannan Sadhasivam i2s1_grp, i2s1_mclkin_grp, spi0_grp 6407b734fbSManivannan Sadhasivam 6507b734fbSManivannan Sadhasivam- function: An array of strings, each string containing the name of the 6607b734fbSManivannan Sadhasivam pinmux functions. The following are the list of pinmux 6707b734fbSManivannan Sadhasivam functions available: 6807b734fbSManivannan Sadhasivam 6907b734fbSManivannan Sadhasivam nand, spi, emmc, sdio, eth0, pwm0, pwm1, pwm2, pwm3, pwm4, 7007b734fbSManivannan Sadhasivam pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11, pwm12, pwm13, 7107b734fbSManivannan Sadhasivam pwm14, pwm15, pwm16, pwm17, pwm18, pwm19, pwm20, pwm21, pwm22, 7207b734fbSManivannan Sadhasivam pwm23, pwm24, pwm25, pwm26, pwm27, pwm28, pwm29, pwm30, pwm31, 7307b734fbSManivannan Sadhasivam pwm32, pwm33, pwm34, pwm35, pwm36, i2c0, i2c1, i2c2, i2c3, 7407b734fbSManivannan Sadhasivam i2c4, uart0, uart1, uart2, uart3, uart4, uart5, uart6, uart7, 7507b734fbSManivannan Sadhasivam uart8, uart9, uart10, uart11, uart12, uart13, uart14, uart15, 7607b734fbSManivannan Sadhasivam gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, 7707b734fbSManivannan Sadhasivam gpio9, gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, gpio16, 7807b734fbSManivannan Sadhasivam gpio17, gpio18, gpio19, gpio20, gpio21, gpio22, gpio23, 7907b734fbSManivannan Sadhasivam gpio24, gpio25, gpio26, gpio27, gpio28, gpio29, gpio30, 8007b734fbSManivannan Sadhasivam gpio31, gpio32, gpio33, gpio34, gpio35, gpio36, gpio37, 8107b734fbSManivannan Sadhasivam gpio38, gpio39, gpio40, gpio41, gpio42, gpio43, gpio44, 8207b734fbSManivannan Sadhasivam gpio45, gpio46, gpio47, gpio48, gpio49, gpio50, gpio51, 8307b734fbSManivannan Sadhasivam gpio52, gpio53, gpio54, gpio55, gpio56, gpio57, gpio58, 8407b734fbSManivannan Sadhasivam gpio59, gpio60, gpio61, gpio62, gpio63, gpio64, gpio65, 8507b734fbSManivannan Sadhasivam gpio66, gpio67, eth1, i2s0, i2s0_mclkin, i2s1, i2s1_mclkin, 8607b734fbSManivannan Sadhasivam spi0 8707b734fbSManivannan Sadhasivam 88752a7403SManivannan SadhasivamOptional Properties: 89752a7403SManivannan Sadhasivam 90752a7403SManivannan Sadhasivam- bias-disable: No arguments. Disable pin bias. 91752a7403SManivannan Sadhasivam- bias-pull-down: No arguments. The specified pins should be configured as 92752a7403SManivannan Sadhasivam pull down. 93752a7403SManivannan Sadhasivam- bias-pull-up: No arguments. The specified pins should be configured as 94752a7403SManivannan Sadhasivam pull up. 95752a7403SManivannan Sadhasivam- input-schmitt-enable: No arguments: Enable schmitt trigger for the specified 96752a7403SManivannan Sadhasivam pins 97752a7403SManivannan Sadhasivam- input-schmitt-disable: No arguments: Disable schmitt trigger for the specified 98752a7403SManivannan Sadhasivam pins 99752a7403SManivannan Sadhasivam- slew-rate: Integer. Sets slew rate for the specified pins. 100752a7403SManivannan Sadhasivam Valid values are: 101752a7403SManivannan Sadhasivam <0> - Slow 102752a7403SManivannan Sadhasivam <1> - Fast 103*7ea6a2edSManivannan Sadhasivam- drive-strength: Integer. Selects the drive strength for the specified 104*7ea6a2edSManivannan Sadhasivam pins in mA. 105*7ea6a2edSManivannan Sadhasivam Valid values are: 106*7ea6a2edSManivannan Sadhasivam <4> 107*7ea6a2edSManivannan Sadhasivam <8> 108*7ea6a2edSManivannan Sadhasivam <12> 109*7ea6a2edSManivannan Sadhasivam <16> 110*7ea6a2edSManivannan Sadhasivam <20> 111*7ea6a2edSManivannan Sadhasivam <24> 112*7ea6a2edSManivannan Sadhasivam <28> 113*7ea6a2edSManivannan Sadhasivam <32> 114752a7403SManivannan Sadhasivam 11507b734fbSManivannan SadhasivamExample: 11613531e5dSManivannan Sadhasivam pinctrl: pinctrl@400 { 11707b734fbSManivannan Sadhasivam compatible = "bitmain,bm1880-pinctrl"; 11813531e5dSManivannan Sadhasivam reg = <0x400 0x120>; 11907b734fbSManivannan Sadhasivam 12007b734fbSManivannan Sadhasivam pinctrl_uart0_default: uart0-default { 12107b734fbSManivannan Sadhasivam pinmux { 12207b734fbSManivannan Sadhasivam groups = "uart0_grp"; 12307b734fbSManivannan Sadhasivam function = "uart0"; 12407b734fbSManivannan Sadhasivam }; 12507b734fbSManivannan Sadhasivam }; 12607b734fbSManivannan Sadhasivam }; 127