15aad0db1SChristian RuppertAbilis Systems TB10x pin controller 25aad0db1SChristian Ruppert=================================== 35aad0db1SChristian Ruppert 45aad0db1SChristian RuppertRequired properties 55aad0db1SChristian Ruppert------------------- 65aad0db1SChristian Ruppert 75aad0db1SChristian Ruppert- compatible: should be "abilis,tb10x-iomux"; 85aad0db1SChristian Ruppert- reg: should contain the physical address and size of the pin controller's 95aad0db1SChristian Ruppert register range. 105aad0db1SChristian Ruppert 115aad0db1SChristian Ruppert 125aad0db1SChristian RuppertFunction definitions 135aad0db1SChristian Ruppert-------------------- 145aad0db1SChristian Ruppert 155aad0db1SChristian RuppertFunctions are defined (and referenced) by sub-nodes of the pin controller. 165aad0db1SChristian RuppertEvery sub-node defines exactly one function (implying a set of pins). 175aad0db1SChristian RuppertEvery function is associated to one named pin group inside the pin controller 185aad0db1SChristian Ruppertdriver and these names are used to associate pin group predefinitions to pin 195aad0db1SChristian Ruppertcontroller sub-nodes. 205aad0db1SChristian Ruppert 215aad0db1SChristian RuppertRequired function definition subnode properties: 225aad0db1SChristian Ruppert - abilis,function: should be set to the name of the function's pin group. 235aad0db1SChristian Ruppert 245aad0db1SChristian RuppertThe following pin groups are available: 255aad0db1SChristian Ruppert - GPIO ports: gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog, 265aad0db1SChristian Ruppert gpioh, gpioi, gpioj, gpiok, gpiol, gpiom, gpion 275aad0db1SChristian Ruppert - Serial TS input ports: mis0, mis1, mis2, mis3, mis4, mis5, mis6, mis7 285aad0db1SChristian Ruppert - Parallel TS input ports: mip1, mip3, mip5, mip7 295aad0db1SChristian Ruppert - Serial TS output ports: mos0, mos1, mos2, mos3 305aad0db1SChristian Ruppert - Parallel TS output port: mop 315aad0db1SChristian Ruppert - CI+ port: ciplus 325aad0db1SChristian Ruppert - CableCard (Mcard) port: mcard 335aad0db1SChristian Ruppert - Smart card ports: stc0, stc1 345aad0db1SChristian Ruppert - UART ports: uart0, uart1 355aad0db1SChristian Ruppert - SPI ports: spi1, spi3 365aad0db1SChristian Ruppert - JTAG: jtag 375aad0db1SChristian Ruppert 385aad0db1SChristian RuppertAll other ports of the chip are not multiplexed and thus not managed by this 395aad0db1SChristian Ruppertdriver. 405aad0db1SChristian Ruppert 415aad0db1SChristian Ruppert 425aad0db1SChristian RuppertGPIO ranges definition 435aad0db1SChristian Ruppert---------------------- 445aad0db1SChristian Ruppert 455aad0db1SChristian RuppertThe named pin groups of GPIO ports can be used to define GPIO ranges as 465aad0db1SChristian Ruppertexplained in Documentation/devicetree/bindings/gpio/gpio.txt. 475aad0db1SChristian Ruppert 485aad0db1SChristian Ruppert 495aad0db1SChristian RuppertExample 505aad0db1SChristian Ruppert------- 515aad0db1SChristian Ruppert 52*afc3bca4SRob Herringiomux: iomux@ff10601c { 535aad0db1SChristian Ruppert compatible = "abilis,tb10x-iomux"; 545aad0db1SChristian Ruppert reg = <0xFF10601c 0x4>; 555aad0db1SChristian Ruppert pctl_gpio_a: pctl-gpio-a { 565aad0db1SChristian Ruppert abilis,function = "gpioa"; 575aad0db1SChristian Ruppert }; 585aad0db1SChristian Ruppert pctl_uart0: pctl-uart0 { 595aad0db1SChristian Ruppert abilis,function = "uart0"; 605aad0db1SChristian Ruppert }; 615aad0db1SChristian Ruppert}; 62*afc3bca4SRob Herringuart@ff100000 { 635aad0db1SChristian Ruppert compatible = "snps,dw-apb-uart"; 645aad0db1SChristian Ruppert reg = <0xFF100000 0x100>; 655aad0db1SChristian Ruppert clock-frequency = <166666666>; 665aad0db1SChristian Ruppert interrupts = <25 1>; 675aad0db1SChristian Ruppert reg-shift = <2>; 685aad0db1SChristian Ruppert reg-io-width = <4>; 695aad0db1SChristian Ruppert pinctrl-names = "default"; 705aad0db1SChristian Ruppert pinctrl-0 = <&pctl_uart0>; 715aad0db1SChristian Ruppert}; 72*afc3bca4SRob Herringgpioa: gpio@ff140000 { 735aad0db1SChristian Ruppert compatible = "abilis,tb10x-gpio"; 745aad0db1SChristian Ruppert reg = <0xFF140000 0x1000>; 755aad0db1SChristian Ruppert gpio-controller; 765aad0db1SChristian Ruppert #gpio-cells = <2>; 775aad0db1SChristian Ruppert ngpio = <3>; 785aad0db1SChristian Ruppert gpio-ranges = <&iomux 0 0>; 795aad0db1SChristian Ruppert gpio-ranges-group-names = "gpioa"; 805aad0db1SChristian Ruppert}; 81