1*c66ec88fSEmmanuel VadotBitmain BM1880 Pin Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis binding describes the pin controller found in the BM1880 SoC. 4*c66ec88fSEmmanuel Vadot 5*c66ec88fSEmmanuel VadotRequired Properties: 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel Vadot- compatible: Should be "bitmain,bm1880-pinctrl" 8*c66ec88fSEmmanuel Vadot- reg: Offset and length of pinctrl space in SCTRL. 9*c66ec88fSEmmanuel Vadot 10*c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the 11*c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the 12*c66ec88fSEmmanuel Vadotphrase "pin configuration node". 13*c66ec88fSEmmanuel Vadot 14*c66ec88fSEmmanuel VadotThe pin configuration nodes act as a container for an arbitrary number of 15*c66ec88fSEmmanuel Vadotsubnodes. Each of these subnodes represents some desired configuration for a 16*c66ec88fSEmmanuel Vadotpin, a group, or a list of pins or groups. This configuration for BM1880 SoC 17*c66ec88fSEmmanuel Vadotincludes pinmux and various pin configuration parameters, such as pull-up, 18*c66ec88fSEmmanuel Vadotslew rate etc... 19*c66ec88fSEmmanuel Vadot 20*c66ec88fSEmmanuel VadotEach configuration node can consist of multiple nodes describing the pinmux 21*c66ec88fSEmmanuel Vadotoptions. The name of each subnode is not important; all subnodes should be 22*c66ec88fSEmmanuel Vadotenumerated and processed purely based on their content. 23*c66ec88fSEmmanuel Vadot 24*c66ec88fSEmmanuel VadotThe following generic properties as defined in pinctrl-bindings.txt are valid 25*c66ec88fSEmmanuel Vadotto specify in a pinmux subnode: 26*c66ec88fSEmmanuel Vadot 27*c66ec88fSEmmanuel VadotRequired Properties: 28*c66ec88fSEmmanuel Vadot 29*c66ec88fSEmmanuel Vadot- pins: An array of strings, each string containing the name of a pin. 30*c66ec88fSEmmanuel Vadot Valid values for pins are: 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot MIO0 - MIO111 33*c66ec88fSEmmanuel Vadot 34*c66ec88fSEmmanuel Vadot- groups: An array of strings, each string containing the name of a pin 35*c66ec88fSEmmanuel Vadot group. Valid values for groups are: 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel Vadot nand_grp, spi_grp, emmc_grp, sdio_grp, eth0_grp, pwm0_grp, 38*c66ec88fSEmmanuel Vadot pwm1_grp, pwm2_grp, pwm3_grp, pwm4_grp, pwm5_grp, pwm6_grp, 39*c66ec88fSEmmanuel Vadot pwm7_grp, pwm8_grp, pwm9_grp, pwm10_grp, pwm11_grp, pwm12_grp, 40*c66ec88fSEmmanuel Vadot pwm13_grp, pwm14_grp, pwm15_grp, pwm16_grp, pwm17_grp, 41*c66ec88fSEmmanuel Vadot pwm18_grp, pwm19_grp, pwm20_grp, pwm21_grp, pwm22_grp, 42*c66ec88fSEmmanuel Vadot pwm23_grp, pwm24_grp, pwm25_grp, pwm26_grp, pwm27_grp, 43*c66ec88fSEmmanuel Vadot pwm28_grp, pwm29_grp, pwm30_grp, pwm31_grp, pwm32_grp, 44*c66ec88fSEmmanuel Vadot pwm33_grp, pwm34_grp, pwm35_grp, pwm36_grp, i2c0_grp, 45*c66ec88fSEmmanuel Vadot i2c1_grp, i2c2_grp, i2c3_grp, i2c4_grp, uart0_grp, uart1_grp, 46*c66ec88fSEmmanuel Vadot uart2_grp, uart3_grp, uart4_grp, uart5_grp, uart6_grp, 47*c66ec88fSEmmanuel Vadot uart7_grp, uart8_grp, uart9_grp, uart10_grp, uart11_grp, 48*c66ec88fSEmmanuel Vadot uart12_grp, uart13_grp, uart14_grp, uart15_grp, gpio0_grp, 49*c66ec88fSEmmanuel Vadot gpio1_grp, gpio2_grp, gpio3_grp, gpio4_grp, gpio5_grp, 50*c66ec88fSEmmanuel Vadot gpio6_grp, gpio7_grp, gpio8_grp, gpio9_grp, gpio10_grp, 51*c66ec88fSEmmanuel Vadot gpio11_grp, gpio12_grp, gpio13_grp, gpio14_grp, gpio15_grp, 52*c66ec88fSEmmanuel Vadot gpio16_grp, gpio17_grp, gpio18_grp, gpio19_grp, gpio20_grp, 53*c66ec88fSEmmanuel Vadot gpio21_grp, gpio22_grp, gpio23_grp, gpio24_grp, gpio25_grp, 54*c66ec88fSEmmanuel Vadot gpio26_grp, gpio27_grp, gpio28_grp, gpio29_grp, gpio30_grp, 55*c66ec88fSEmmanuel Vadot gpio31_grp, gpio32_grp, gpio33_grp, gpio34_grp, gpio35_grp, 56*c66ec88fSEmmanuel Vadot gpio36_grp, gpio37_grp, gpio38_grp, gpio39_grp, gpio40_grp, 57*c66ec88fSEmmanuel Vadot gpio41_grp, gpio42_grp, gpio43_grp, gpio44_grp, gpio45_grp, 58*c66ec88fSEmmanuel Vadot gpio46_grp, gpio47_grp, gpio48_grp, gpio49_grp, gpio50_grp, 59*c66ec88fSEmmanuel Vadot gpio51_grp, gpio52_grp, gpio53_grp, gpio54_grp, gpio55_grp, 60*c66ec88fSEmmanuel Vadot gpio56_grp, gpio57_grp, gpio58_grp, gpio59_grp, gpio60_grp, 61*c66ec88fSEmmanuel Vadot gpio61_grp, gpio62_grp, gpio63_grp, gpio64_grp, gpio65_grp, 62*c66ec88fSEmmanuel Vadot gpio66_grp, gpio67_grp, eth1_grp, i2s0_grp, i2s0_mclkin_grp, 63*c66ec88fSEmmanuel Vadot i2s1_grp, i2s1_mclkin_grp, spi0_grp 64*c66ec88fSEmmanuel Vadot 65*c66ec88fSEmmanuel Vadot- function: An array of strings, each string containing the name of the 66*c66ec88fSEmmanuel Vadot pinmux functions. The following are the list of pinmux 67*c66ec88fSEmmanuel Vadot functions available: 68*c66ec88fSEmmanuel Vadot 69*c66ec88fSEmmanuel Vadot nand, spi, emmc, sdio, eth0, pwm0, pwm1, pwm2, pwm3, pwm4, 70*c66ec88fSEmmanuel Vadot pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11, pwm12, pwm13, 71*c66ec88fSEmmanuel Vadot pwm14, pwm15, pwm16, pwm17, pwm18, pwm19, pwm20, pwm21, pwm22, 72*c66ec88fSEmmanuel Vadot pwm23, pwm24, pwm25, pwm26, pwm27, pwm28, pwm29, pwm30, pwm31, 73*c66ec88fSEmmanuel Vadot pwm32, pwm33, pwm34, pwm35, pwm36, i2c0, i2c1, i2c2, i2c3, 74*c66ec88fSEmmanuel Vadot i2c4, uart0, uart1, uart2, uart3, uart4, uart5, uart6, uart7, 75*c66ec88fSEmmanuel Vadot uart8, uart9, uart10, uart11, uart12, uart13, uart14, uart15, 76*c66ec88fSEmmanuel Vadot gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, 77*c66ec88fSEmmanuel Vadot gpio9, gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, gpio16, 78*c66ec88fSEmmanuel Vadot gpio17, gpio18, gpio19, gpio20, gpio21, gpio22, gpio23, 79*c66ec88fSEmmanuel Vadot gpio24, gpio25, gpio26, gpio27, gpio28, gpio29, gpio30, 80*c66ec88fSEmmanuel Vadot gpio31, gpio32, gpio33, gpio34, gpio35, gpio36, gpio37, 81*c66ec88fSEmmanuel Vadot gpio38, gpio39, gpio40, gpio41, gpio42, gpio43, gpio44, 82*c66ec88fSEmmanuel Vadot gpio45, gpio46, gpio47, gpio48, gpio49, gpio50, gpio51, 83*c66ec88fSEmmanuel Vadot gpio52, gpio53, gpio54, gpio55, gpio56, gpio57, gpio58, 84*c66ec88fSEmmanuel Vadot gpio59, gpio60, gpio61, gpio62, gpio63, gpio64, gpio65, 85*c66ec88fSEmmanuel Vadot gpio66, gpio67, eth1, i2s0, i2s0_mclkin, i2s1, i2s1_mclkin, 86*c66ec88fSEmmanuel Vadot spi0 87*c66ec88fSEmmanuel Vadot 88*c66ec88fSEmmanuel VadotOptional Properties: 89*c66ec88fSEmmanuel Vadot 90*c66ec88fSEmmanuel Vadot- bias-disable: No arguments. Disable pin bias. 91*c66ec88fSEmmanuel Vadot- bias-pull-down: No arguments. The specified pins should be configured as 92*c66ec88fSEmmanuel Vadot pull down. 93*c66ec88fSEmmanuel Vadot- bias-pull-up: No arguments. The specified pins should be configured as 94*c66ec88fSEmmanuel Vadot pull up. 95*c66ec88fSEmmanuel Vadot- input-schmitt-enable: No arguments: Enable schmitt trigger for the specified 96*c66ec88fSEmmanuel Vadot pins 97*c66ec88fSEmmanuel Vadot- input-schmitt-disable: No arguments: Disable schmitt trigger for the specified 98*c66ec88fSEmmanuel Vadot pins 99*c66ec88fSEmmanuel Vadot- slew-rate: Integer. Sets slew rate for the specified pins. 100*c66ec88fSEmmanuel Vadot Valid values are: 101*c66ec88fSEmmanuel Vadot <0> - Slow 102*c66ec88fSEmmanuel Vadot <1> - Fast 103*c66ec88fSEmmanuel Vadot- drive-strength: Integer. Selects the drive strength for the specified 104*c66ec88fSEmmanuel Vadot pins in mA. 105*c66ec88fSEmmanuel Vadot Valid values are: 106*c66ec88fSEmmanuel Vadot <4> 107*c66ec88fSEmmanuel Vadot <8> 108*c66ec88fSEmmanuel Vadot <12> 109*c66ec88fSEmmanuel Vadot <16> 110*c66ec88fSEmmanuel Vadot <20> 111*c66ec88fSEmmanuel Vadot <24> 112*c66ec88fSEmmanuel Vadot <28> 113*c66ec88fSEmmanuel Vadot <32> 114*c66ec88fSEmmanuel Vadot 115*c66ec88fSEmmanuel VadotExample: 116*c66ec88fSEmmanuel Vadot pinctrl: pinctrl@400 { 117*c66ec88fSEmmanuel Vadot compatible = "bitmain,bm1880-pinctrl"; 118*c66ec88fSEmmanuel Vadot reg = <0x400 0x120>; 119*c66ec88fSEmmanuel Vadot 120*c66ec88fSEmmanuel Vadot pinctrl_uart0_default: uart0-default { 121*c66ec88fSEmmanuel Vadot pinmux { 122*c66ec88fSEmmanuel Vadot groups = "uart0_grp"; 123*c66ec88fSEmmanuel Vadot function = "uart0"; 124*c66ec88fSEmmanuel Vadot }; 125*c66ec88fSEmmanuel Vadot }; 126*c66ec88fSEmmanuel Vadot }; 127