18c2ecf20Sopenharmony_ci== Amlogic Meson pinmux controller == 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciRequired properties for the root node: 48c2ecf20Sopenharmony_ci - compatible: one of "amlogic,meson8-cbus-pinctrl" 58c2ecf20Sopenharmony_ci "amlogic,meson8b-cbus-pinctrl" 68c2ecf20Sopenharmony_ci "amlogic,meson8m2-cbus-pinctrl" 78c2ecf20Sopenharmony_ci "amlogic,meson8-aobus-pinctrl" 88c2ecf20Sopenharmony_ci "amlogic,meson8b-aobus-pinctrl" 98c2ecf20Sopenharmony_ci "amlogic,meson8m2-aobus-pinctrl" 108c2ecf20Sopenharmony_ci "amlogic,meson-gxbb-periphs-pinctrl" 118c2ecf20Sopenharmony_ci "amlogic,meson-gxbb-aobus-pinctrl" 128c2ecf20Sopenharmony_ci "amlogic,meson-gxl-periphs-pinctrl" 138c2ecf20Sopenharmony_ci "amlogic,meson-gxl-aobus-pinctrl" 148c2ecf20Sopenharmony_ci "amlogic,meson-axg-periphs-pinctrl" 158c2ecf20Sopenharmony_ci "amlogic,meson-axg-aobus-pinctrl" 168c2ecf20Sopenharmony_ci "amlogic,meson-g12a-periphs-pinctrl" 178c2ecf20Sopenharmony_ci "amlogic,meson-g12a-aobus-pinctrl" 188c2ecf20Sopenharmony_ci "amlogic,meson-a1-periphs-pinctrl" 198c2ecf20Sopenharmony_ci - reg: address and size of registers controlling irq functionality 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci=== GPIO sub-nodes === 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciThe GPIO bank for the controller is represented as a sub-node and it acts as a 248c2ecf20Sopenharmony_ciGPIO controller. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciRequired properties for sub-nodes are: 278c2ecf20Sopenharmony_ci - reg: should contain a list of address and size, one tuple for each entry 288c2ecf20Sopenharmony_ci in reg-names. 298c2ecf20Sopenharmony_ci - reg-names: an array of strings describing the "reg" entries. 308c2ecf20Sopenharmony_ci Must contain "mux" and "gpio". 318c2ecf20Sopenharmony_ci May contain "pull", "pull-enable" and "ds" when appropriate. 328c2ecf20Sopenharmony_ci - gpio-controller: identifies the node as a gpio controller 338c2ecf20Sopenharmony_ci - #gpio-cells: must be 2 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci=== Other sub-nodes === 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ciChild nodes without the "gpio-controller" represent some desired 388c2ecf20Sopenharmony_ciconfiguration for a pin or a group. Those nodes can be pinmux nodes or 398c2ecf20Sopenharmony_ciconfiguration nodes. 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciRequired properties for pinmux nodes are: 428c2ecf20Sopenharmony_ci - groups: a list of pinmux groups. The list of all available groups 438c2ecf20Sopenharmony_ci depends on the SoC and can be found in driver sources. 448c2ecf20Sopenharmony_ci - function: the name of a function to activate for the specified set 458c2ecf20Sopenharmony_ci of groups. The list of all available functions depends on the SoC 468c2ecf20Sopenharmony_ci and can be found in driver sources. 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ciRequired properties for configuration nodes: 498c2ecf20Sopenharmony_ci - pins: a list of pin names 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ciConfiguration nodes support the following generic properties, as 528c2ecf20Sopenharmony_cidescribed in file pinctrl-bindings.txt: 538c2ecf20Sopenharmony_ci - "bias-disable" 548c2ecf20Sopenharmony_ci - "bias-pull-up" 558c2ecf20Sopenharmony_ci - "bias-pull-down" 568c2ecf20Sopenharmony_ci - "output-enable" 578c2ecf20Sopenharmony_ci - "output-disable" 588c2ecf20Sopenharmony_ci - "output-low" 598c2ecf20Sopenharmony_ci - "output-high" 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciOptional properties : 628c2ecf20Sopenharmony_ci - drive-strength-microamp: Drive strength for the specified pins in uA. 638c2ecf20Sopenharmony_ci This property is only valid for G12A and newer. 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci=== Example === 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci pinctrl: pinctrl@c1109880 { 688c2ecf20Sopenharmony_ci compatible = "amlogic,meson8-cbus-pinctrl"; 698c2ecf20Sopenharmony_ci reg = <0xc1109880 0x10>; 708c2ecf20Sopenharmony_ci #address-cells = <1>; 718c2ecf20Sopenharmony_ci #size-cells = <1>; 728c2ecf20Sopenharmony_ci ranges; 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci gpio: banks@c11080b0 { 758c2ecf20Sopenharmony_ci reg = <0xc11080b0 0x28>, 768c2ecf20Sopenharmony_ci <0xc11080e8 0x18>, 778c2ecf20Sopenharmony_ci <0xc1108120 0x18>, 788c2ecf20Sopenharmony_ci <0xc1108030 0x30>; 798c2ecf20Sopenharmony_ci reg-names = "mux", "pull", "pull-enable", "gpio"; 808c2ecf20Sopenharmony_ci gpio-controller; 818c2ecf20Sopenharmony_ci #gpio-cells = <2>; 828c2ecf20Sopenharmony_ci }; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci nand { 858c2ecf20Sopenharmony_ci mux { 868c2ecf20Sopenharmony_ci groups = "nand_io", "nand_io_ce0", "nand_io_ce1", 878c2ecf20Sopenharmony_ci "nand_io_rb0", "nand_ale", "nand_cle", 888c2ecf20Sopenharmony_ci "nand_wen_clk", "nand_ren_clk", "nand_dqs", 898c2ecf20Sopenharmony_ci "nand_ce2", "nand_ce3"; 908c2ecf20Sopenharmony_ci function = "nand"; 918c2ecf20Sopenharmony_ci }; 928c2ecf20Sopenharmony_ci }; 938c2ecf20Sopenharmony_ci }; 94