For a description of the devicetree node, please read
Documentation/devicetree/bindings/pinctrl/ingenic,pinctrl.txt

Signed-off-by: Paul Cercueil <p...@crapouillou.net>
---
 arch/mips/boot/dts/ingenic/jz4780.dtsi | 333 +++++++++++++++++++++++++++++++++
 1 file changed, 333 insertions(+)

diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi 
b/arch/mips/boot/dts/ingenic/jz4780.dtsi
index b868b429add2..0135b2b0c6ad 100644
--- a/arch/mips/boot/dts/ingenic/jz4780.dtsi
+++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi
@@ -44,6 +44,339 @@
                #clock-cells = <1>;
        };
 
+       pinctrl: ingenic-pinctrl@10010000 {
+               compatible = "ingenic,jz4780-pinctrl";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               gpio-chips {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       gpa: gpa {
+                               reg = <0x10010000 0x100>;
+
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+
+                               interrupt-parent = <&intc>;
+                               interrupts = <17>;
+
+                               ingenic,pull-ups = <0x3fffffff>;
+                       };
+
+                       gpb: gpb {
+                               reg = <0x10010100 0x100>;
+
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+
+                               interrupt-parent = <&intc>;
+                               interrupts = <16>;
+
+                               ingenic,pull-downs = <0x000f0c03>;
+                               ingenic,pull-ups   = <0xfff0030c>;
+                       };
+
+                       gpc: gpc {
+                               reg = <0x10010200 0x100>;
+
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+
+                               interrupt-parent = <&intc>;
+                               interrupts = <15>;
+
+                               ingenic,pull-ups = <0xffffffff>;
+                       };
+
+                       gpd: gpd {
+                               reg = <0x10010300 0x100>;
+
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+
+                               interrupt-parent = <&intc>;
+                               interrupts = <14>;
+
+                               ingenic,pull-downs = <0x0000b000>;
+                               ingenic,pull-ups   = <0xffff4fff>;
+                       };
+
+                       gpe: gpe {
+                               reg = <0x10010400 0x100>;
+
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+
+                               interrupt-parent = <&intc>;
+                               interrupts = <13>;
+
+                               ingenic,pull-downs = <0x00000483>;
+                               ingenic,pull-ups   = <0xfffffb7c>;
+                       };
+
+                       gpf: gpf {
+                               reg = <0x10010500 0x100>;
+
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+
+                               interrupt-parent = <&intc>;
+                               interrupts = <12>;
+
+                               ingenic,pull-downs = <0x00580ff0>;
+                               ingenic,pull-ups   = <0xffa7f00f>;
+                       };
+               };
+
+               bias-configs {
+                       nobias: nobias {
+                               bias-disable;
+                       };
+
+                       pull_up: pull_up {
+                               bias-pull-up;
+                       };
+
+                       pull_down: pull_down {
+                               bias-pull-down;
+                       };
+               };
+
+               functions {
+                       pinfunc-uart0 {
+                               pins_uart0_data: uart0-data {
+                                       ingenic,pins = <&gpf  0 0 &pull_up  /* 
rxd */
+                                                       &gpf  3 0 &nobias>; /* 
txd */
+                               };
+
+                               pins_uart0_dataplusflow: uart0-dataplusflow {
+                                       ingenic,pins = <&gpf  0 0 &pull_up  /* 
rxd */
+                                                       &gpf  1 0 &nobias   /* 
cts */
+                                                       &gpf  2 0 &nobias   /* 
rts */
+                                                       &gpf  3 0 &nobias>; /* 
txd */
+                               };
+                       };
+
+                       pinfunc-uart1 {
+                               pins_uart1_data: uart1-data {
+                                       ingenic,pins = <&gpd  26 0 &pull_up  /* 
rxd */
+                                                       &gpd  28 0 &nobias>; /* 
txd */
+                               };
+
+                               pins_uart1_dataplusflow: uart1-dataplusflow {
+                                       ingenic,pins = <&gpd  26 0 &pull_up  /* 
rxd */
+                                                       &gpd  27 0 &nobias   /* 
cts */
+                                                       &gpd  29 0 &nobias   /* 
rts */
+                                                       &gpd  28 0 &nobias>; /* 
txd */
+                               };
+                       };
+
+                       pinfunc-uart2 {
+                               pins_uart2_data: uart2-data {
+                                       ingenic,pins = <&gpd  6 1 &nobias  /* 
rxd */
+                                                       &gpd  7 1 &nobias>; /* 
txd */
+                               };
+
+                               pins_uart2_dataplusflow: uart2-dataplusflow {
+                                       ingenic,pins = <&gpd  6 1 &nobias  /* 
rxd */
+                                                       &gpd  5 1 &nobias   /* 
cts */
+                                                       &gpd  4 1 &nobias   /* 
rts */
+                                                       &gpd  7 1 &nobias>; /* 
txd */
+                               };
+                       };
+
+                       pinfunc-uart3 {
+                               pins_uart3_data: uart3-data {
+                                       ingenic,pins = <&gpd 12 0 &pull_down /* 
rxd */
+                                                       &gpe  5 1 &nobias>;  /* 
txd */
+                               };
+
+                               pins_uart3_dataplusflow: uart3-dataplusflow {
+                                       ingenic,pins = <&gpd 12 0 &pull_down /* 
rxd */
+                                                       &gpe  5 1 &nobias    /* 
txd */
+                                                       &gpe  8 0 &nobias    /* 
cts */
+                                                       &gpe  9 0 &nobias>;  /* 
rts */
+                               };
+                       };
+
+                       pinfunc-uart4 {
+                               pins_uart4_data: uart4-data {
+                                       ingenic,pins = <&gpc 20 2 &pull_up   /* 
rxd */
+                                                       &gpc 10 2 &nobias>;  /* 
txd */
+                               };
+                       };
+
+                       pinfunc-msc0 {
+                               pins_msc0_pa: msc0-pa {
+                                       ingenic,pins = <&gpa  4 1 &nobias   /* 
d4 */
+                                                       &gpa  5 1 &nobias   /* 
d5 */
+                                                       &gpa  6 1 &nobias   /* 
d6 */
+                                                       &gpa  7 1 &nobias   /* 
d7 */
+                                                       &gpa 18 1 &nobias   /* 
clk */
+                                                       &gpa 19 1 &nobias   /* 
cmd */
+                                                       &gpa 20 1 &nobias   /* 
d0 */
+                                                       &gpa 21 1 &nobias   /* 
d1 */
+                                                       &gpa 22 1 &nobias   /* 
d2 */
+                                                       &gpa 23 1 &nobias   /* 
d3 */
+                                                       &gpa 24 1 &nobias>; /* 
rst */
+                               };
+
+                               pins_msc0_pe: msc0-pe {
+                                       ingenic,pins = <&gpe 20 0 &nobias   /* 
d0 */
+                                                       &gpe 21 0 &nobias   /* 
d1 */
+                                                       &gpe 22 0 &nobias   /* 
d2 */
+                                                       &gpe 23 0 &nobias   /* 
d3 */
+                                                       &gpe 28 0 &nobias   /* 
clk */
+                                                       &gpe 29 0 &nobias>; /* 
cmd */
+                               };
+                       };
+
+                       pinfunc-msc1 {
+                               pins_msc1_pd: msc1-pd {
+                                       ingenic,pins = <&gpd 20 0 &nobias   /* 
d0 */
+                                                       &gpd 21 0 &nobias   /* 
d1 */
+                                                       &gpd 22 0 &nobias   /* 
d2 */
+                                                       &gpd 23 0 &nobias   /* 
d3 */
+                                                       &gpd 24 0 &nobias   /* 
clk */
+                                                       &gpd 25 0 &nobias>; /* 
cmd */
+                               };
+
+                               pins_msc1_pe: msc1-pe {
+                                       ingenic,pins = <&gpe 20 1 &nobias   /* 
d0 */
+                                                       &gpe 21 1 &nobias   /* 
d1 */
+                                                       &gpe 22 1 &nobias   /* 
d2 */
+                                                       &gpe 23 1 &nobias   /* 
d3 */
+                                                       &gpe 28 1 &nobias   /* 
clk */
+                                                       &gpe 29 1 &nobias>; /* 
cmd */
+                               };
+                       };
+
+                       pinfunc-nemc {
+                               pins_nemc_data: nemc-data {
+                                       ingenic,pins = <&gpa 0 0 &nobias    /* 
sd0 */
+                                                       &gpa 1 0 &nobias    /* 
sd1 */
+                                                       &gpa 2 0 &nobias    /* 
sd2 */
+                                                       &gpa 3 0 &nobias    /* 
sd3 */
+                                                       &gpa 4 0 &nobias    /* 
sd4 */
+                                                       &gpa 5 0 &nobias    /* 
sd5 */
+                                                       &gpa 6 0 &nobias    /* 
sd6 */
+                                                       &gpa 7 0 &nobias>;  /* 
sd7 */
+                               };
+
+                               pins_nemc_cle_ale: nemc-cle-ale {
+                                       ingenic,pins = <&gpb 0 0 &nobias    /* 
sa0_cl */
+                                                       &gpb 1 0 &nobias>;  /* 
sa1_al */
+                               };
+
+                               pins_nemc_addr: nemc-addr {
+                                       ingenic,pins = <&gpb 0 0 &nobias    /* 
sa0_cl */
+                                                       &gpb 1 0 &nobias    /* 
sa1_al */
+                                                       &gpb 2 0 &nobias    /* 
sa2 */
+                                                       &gpb 3 0 &nobias    /* 
sa3 */
+                                                       &gpb 4 0 &nobias    /* 
sa4 */
+                                                       &gpb 5 0 &nobias>;  /* 
sa5 */
+                               };
+
+                               pins_nemc_rd_we: nemc-rd-we {
+                                       ingenic,pins = <&gpa 16 0 &nobias   /* 
rd */
+                                                       &gpa 17 0 &nobias>; /* 
we */
+                               };
+
+                               pins_nemc_frd_fwe: nemc-frd-fwe {
+                                       ingenic,pins = <&gpa 18 0 &nobias   /* 
rd */
+                                                       &gpa 19 0 &nobias>; /* 
we */
+                               };
+
+                               pins_nemc_cs1: nemc-cs1 {
+                                       ingenic,pins = <&gpa 21 0 &nobias>; /* 
cs1 */
+                               };
+
+                               pins_nemc_cs6: nemc-cs6 {
+                                       ingenic,pins = <&gpa 26 0 &nobias>; /* 
cs6 */
+                               };
+                       };
+
+                       pinfunc-i2c0 {
+                               pins_i2c0_data: i2c0-data{
+                                       ingenic,pins = <&gpd  30 0 &nobias  /* 
sda */
+                                                       &gpd  31 0 &nobias>; /* 
sck */
+                               };
+                       };
+
+                       pinfunc-i2c1 {
+                               pins_i2c1_data: i2c1-data{
+                                       ingenic,pins = <&gpe  30 0 &nobias  /* 
sda */
+                                                       &gpe  31 0 &nobias>; /* 
sck */
+                               };
+                       };
+
+                       pinfunc-i2c2 {
+                               pins_i2c2_data: i2c2-data{
+                                       ingenic,pins = <&gpf  16 2 &nobias  /* 
sda */
+                                                       &gpf  17 2 &nobias>; /* 
sck */
+                               };
+                       };
+
+                       pinfunc-i2c3 {
+                               pins_i2c3_data: i2c3-data{
+                                       ingenic,pins = <&gpd  10 1 &nobias  /* 
sda */
+                                                       &gpd  11 1 &nobias>; /* 
sck */
+                               };
+                       };
+
+                       pinfunc-i2c4 {
+                               pins_i2c4_data: i2c4-data-pe{
+                                       ingenic,pins = <&gpe  12 1 &nobias  /* 
sda */
+                                                       &gpe  13 1 &nobias>; /* 
sck */
+                               };
+
+                               pins_i2c4_data_pf: i2c4-data-pf{
+                                       ingenic,pins = <&gpf 25 1 &nobias /* 
hdmi_sda */
+                                                       &gpf 24 1 &nobias>; /* 
hdmi_sck */
+                               };
+                       };
+
+                       pinfunc-cim {
+                               pins_cim: cim-pb {
+                                       ingenic,pins = <&gpb   6 0 &nobias
+                                                       &gpb   7 0 &nobias
+                                                       &gpb   8 0 &nobias
+                                                       &gpb   9 0 &nobias
+                                                       &gpb  10 0 &nobias
+                                                       &gpb  11 0 &nobias
+                                                       &gpb  12 0 &nobias
+                                                       &gpb  13 0 &nobias
+                                                       &gpb  14 0 &nobias
+                                                       &gpb  15 0 &nobias
+                                                       &gpb  16 0 &nobias
+                                                       &gpb  17 0 &nobias>;
+                               };
+                       };
+               };
+       };
+
        uart0: serial@10030000 {
                compatible = "ingenic,jz4780-uart";
                reg = <0x10030000 0x100>;
-- 
2.11.0

Reply via email to