Commit 68f46897 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Olof Johansson

ARM: dts: uniphier: add I2C controller device nodes

Add I2C controller device nodes for PH1-sLD3, PH1-LD4, PH1-sLD8
(FIFO-less I2C) and PH1-Pro4 (FIFO-builtin I2C).
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parent b9efb8e3
...@@ -65,6 +65,10 @@ aliases { ...@@ -65,6 +65,10 @@ aliases {
serial1 = &serial1; serial1 = &serial1;
serial2 = &serial2; serial2 = &serial2;
serial3 = &serial3; serial3 = &serial3;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
}; };
}; };
...@@ -93,6 +97,10 @@ &serial3 { ...@@ -93,6 +97,10 @@ &serial3 {
status = "okay"; status = "okay";
}; };
&i2c0 {
status = "okay";
};
&usb0 { &usb0 {
status = "okay"; status = "okay";
}; };
......
...@@ -70,6 +70,12 @@ uart_clk: uart_clk { ...@@ -70,6 +70,12 @@ uart_clk: uart_clk {
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <36864000>; clock-frequency = <36864000>;
}; };
iobus_clk: iobus_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <100000000>;
};
}; };
soc { soc {
...@@ -129,6 +135,58 @@ serial3: serial@54006b00 { ...@@ -129,6 +135,58 @@ serial3: serial@54006b00 {
fifo-size = <64>; fifo-size = <64>;
}; };
i2c0: i2c@58400000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58400000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0>;
interrupts = <0 41 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
i2c1: i2c@58480000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58480000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
interrupts = <0 42 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
/* chip-internal connection for DMD */
i2c2: i2c@58500000 {
compatible = "socionext,uniphier-i2c";
reg = <0x58500000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
interrupts = <0 43 1>;
clocks = <&iobus_clk>;
clock-frequency = <400000>;
};
i2c3: i2c@58580000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58580000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
interrupts = <0 44 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
system-bus-controller-misc@59800000 { system-bus-controller-misc@59800000 {
compatible = "socionext,uniphier-system-bus-controller-misc", compatible = "socionext,uniphier-system-bus-controller-misc",
"syscon"; "syscon";
......
...@@ -65,6 +65,12 @@ aliases { ...@@ -65,6 +65,12 @@ aliases {
serial1 = &serial1; serial1 = &serial1;
serial2 = &serial2; serial2 = &serial2;
serial3 = &serial3; serial3 = &serial3;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c5 = &i2c5;
i2c6 = &i2c6;
}; };
}; };
...@@ -93,6 +99,10 @@ &serial2 { ...@@ -93,6 +99,10 @@ &serial2 {
status = "okay"; status = "okay";
}; };
&i2c0 {
status = "okay";
};
&usb2 { &usb2 {
status = "okay"; status = "okay";
}; };
......
...@@ -77,6 +77,12 @@ uart_clk: uart_clk { ...@@ -77,6 +77,12 @@ uart_clk: uart_clk {
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <73728000>; clock-frequency = <73728000>;
}; };
i2c_clk: i2c_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <50000000>;
};
}; };
soc { soc {
...@@ -136,6 +142,82 @@ serial3: serial@54006b00 { ...@@ -136,6 +142,82 @@ serial3: serial@54006b00 {
fifo-size = <64>; fifo-size = <64>;
}; };
i2c0: i2c@58780000 {
compatible = "socionext,uniphier-fi2c";
status = "disabled";
reg = <0x58780000 0x80>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0>;
interrupts = <0 41 4>;
clocks = <&i2c_clk>;
clock-frequency = <100000>;
};
i2c1: i2c@58781000 {
compatible = "socionext,uniphier-fi2c";
status = "disabled";
reg = <0x58781000 0x80>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
interrupts = <0 42 4>;
clocks = <&i2c_clk>;
clock-frequency = <100000>;
};
i2c2: i2c@58782000 {
compatible = "socionext,uniphier-fi2c";
status = "disabled";
reg = <0x58782000 0x80>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
interrupts = <0 43 4>;
clocks = <&i2c_clk>;
clock-frequency = <100000>;
};
i2c3: i2c@58783000 {
compatible = "socionext,uniphier-fi2c";
status = "disabled";
reg = <0x58783000 0x80>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
interrupts = <0 44 4>;
clocks = <&i2c_clk>;
clock-frequency = <100000>;
};
/* i2c4 does not exist */
/* chip-internal connection for DMD */
i2c5: i2c@58785000 {
compatible = "socionext,uniphier-fi2c";
reg = <0x58785000 0x80>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 25 4>;
clocks = <&i2c_clk>;
clock-frequency = <400000>;
};
/* chip-internal connection for HDMI */
i2c6: i2c@58786000 {
compatible = "socionext,uniphier-fi2c";
reg = <0x58786000 0x80>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 26 4>;
clocks = <&i2c_clk>;
clock-frequency = <400000>;
};
system-bus-controller-misc@59800000 { system-bus-controller-misc@59800000 {
compatible = "socionext,uniphier-system-bus-controller-misc", compatible = "socionext,uniphier-system-bus-controller-misc",
"syscon"; "syscon";
......
...@@ -65,6 +65,11 @@ aliases { ...@@ -65,6 +65,11 @@ aliases {
serial0 = &serial0; serial0 = &serial0;
serial1 = &serial1; serial1 = &serial1;
serial2 = &serial2; serial2 = &serial2;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
}; };
}; };
...@@ -93,6 +98,10 @@ &serial2 { ...@@ -93,6 +98,10 @@ &serial2 {
status = "okay"; status = "okay";
}; };
&i2c0 {
status = "okay";
};
&usb0 { &usb0 {
status = "okay"; status = "okay";
}; };
......
...@@ -77,6 +77,12 @@ uart_clk: uart_clk { ...@@ -77,6 +77,12 @@ uart_clk: uart_clk {
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <36864000>; clock-frequency = <36864000>;
}; };
iobus_clk: iobus_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <100000000>;
};
}; };
soc { soc {
...@@ -141,6 +147,61 @@ serial2: serial@54006a00 { ...@@ -141,6 +147,61 @@ serial2: serial@54006a00 {
fifo-size = <64>; fifo-size = <64>;
}; };
i2c0: i2c@58400000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58400000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 41 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
i2c1: i2c@58480000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58480000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 42 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
i2c2: i2c@58500000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58500000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 43 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
i2c3: i2c@58580000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58580000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 44 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
/* chip-internal connection for DMD */
i2c4: i2c@58600000 {
compatible = "socionext,uniphier-i2c";
reg = <0x58600000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <0 45 1>;
clocks = <&iobus_clk>;
clock-frequency = <400000>;
};
system-bus-controller-misc@59800000 { system-bus-controller-misc@59800000 {
compatible = "socionext,uniphier-system-bus-controller-misc", compatible = "socionext,uniphier-system-bus-controller-misc",
"syscon"; "syscon";
......
...@@ -65,6 +65,10 @@ aliases { ...@@ -65,6 +65,10 @@ aliases {
serial1 = &serial1; serial1 = &serial1;
serial2 = &serial2; serial2 = &serial2;
serial3 = &serial3; serial3 = &serial3;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
}; };
}; };
...@@ -93,6 +97,10 @@ &serial3 { ...@@ -93,6 +97,10 @@ &serial3 {
status = "okay"; status = "okay";
}; };
&i2c0 {
status = "okay";
};
&usb0 { &usb0 {
status = "okay"; status = "okay";
}; };
......
...@@ -70,6 +70,12 @@ uart_clk: uart_clk { ...@@ -70,6 +70,12 @@ uart_clk: uart_clk {
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <80000000>; clock-frequency = <80000000>;
}; };
iobus_clk: iobus_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <100000000>;
};
}; };
soc { soc {
...@@ -129,6 +135,58 @@ serial3: serial@54006b00 { ...@@ -129,6 +135,58 @@ serial3: serial@54006b00 {
fifo-size = <64>; fifo-size = <64>;
}; };
i2c0: i2c@58400000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58400000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c0>;
interrupts = <0 41 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
i2c1: i2c@58480000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58480000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
interrupts = <0 42 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
/* chip-internal connection for DMD */
i2c2: i2c@58500000 {
compatible = "socionext,uniphier-i2c";
reg = <0x58500000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
interrupts = <0 43 1>;
clocks = <&iobus_clk>;
clock-frequency = <400000>;
};
i2c3: i2c@58580000 {
compatible = "socionext,uniphier-i2c";
status = "disabled";
reg = <0x58580000 0x40>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
interrupts = <0 44 1>;
clocks = <&iobus_clk>;
clock-frequency = <100000>;
};
system-bus-controller-misc@59800000 { system-bus-controller-misc@59800000 {
compatible = "socionext,uniphier-system-bus-controller-misc", compatible = "socionext,uniphier-system-bus-controller-misc",
"syscon"; "syscon";
......
...@@ -43,6 +43,26 @@ ...@@ -43,6 +43,26 @@
*/ */
&pinctrl { &pinctrl {
pinctrl_i2c0: i2c0_grp {
groups = "i2c0";
function = "i2c0";
};
pinctrl_i2c1: i2c1_grp {
groups = "i2c1";
function = "i2c1";
};
pinctrl_i2c2: i2c2_grp {
groups = "i2c2";
function = "i2c2";
};
pinctrl_i2c3: i2c3_grp {
groups = "i2c3";
function = "i2c3";
};
pinctrl_uart0: uart0_grp { pinctrl_uart0: uart0_grp {
groups = "uart0"; groups = "uart0";
function = "uart0"; function = "uart0";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment