[PATCH linux dev-5.2 v2 3/4] ARM: dts: Aspeed: ast2600: Add I2C busses

Eddie James eajames at linux.ibm.com
Thu Sep 19 00:53:36 AEST 2019


On 9/18/19 5:18 AM, Cédric Le Goater wrote:
> On 13/09/2019 18:15, Eddie James wrote:
>> Add all the I2C busses to the AST2600 dtsi and set their required
>> properties.
>>
> The DT defines an interrupt per I2C bus but this is not how the I2C
> driver operates. It still uses the old mode from the Aspeed AST2500.


Oh? The I2C interrupt controller driver is a separate driver, which I 
didn't include a node for in the AST2600 dts. As far as I can tell the 
I2C bus driver just asks for it's interrupt and uses it, so by setting 
each bus to it's GIC interrupt line (instead of the line from the I2C 
interrupt controller like in the AST2500), the I2C driver receives the 
correct interrupt.

Thanks,

Eddie


>
> C.
>
>   
>> Signed-off-by: Eddie James <eajames at linux.ibm.com>
>> ---
>>   arch/arm/boot/dts/aspeed-g6.dtsi | 272 +++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 272 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed-g6.dtsi
>> index f3edcff..916503a 100644
>> --- a/arch/arm/boot/dts/aspeed-g6.dtsi
>> +++ b/arch/arm/boot/dts/aspeed-g6.dtsi
>> @@ -12,6 +12,22 @@
>>   	interrupt-parent = <&gic>;
>>   
>>   	aliases {
>> +		i2c0 = &i2c0;
>> +		i2c1 = &i2c1;
>> +		i2c2 = &i2c2;
>> +		i2c3 = &i2c3;
>> +		i2c4 = &i2c4;
>> +		i2c5 = &i2c5;
>> +		i2c6 = &i2c6;
>> +		i2c7 = &i2c7;
>> +		i2c8 = &i2c8;
>> +		i2c9 = &i2c9;
>> +		i2c10 = &i2c10;
>> +		i2c11 = &i2c11;
>> +		i2c12 = &i2c12;
>> +		i2c13 = &i2c13;
>> +		i2c14 = &i2c14;
>> +		i2c15 = &i2c15;
>>   		serial4 = &uart5;
>>   	};
>>   
>> @@ -281,6 +297,262 @@
>>   				};
>>   			};
>>   
>> +			i2c0: i2c-bus at 1e78a080 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a080 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c1_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c1: i2c-bus at 1e78a100 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a100 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c2_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c2: i2c-bus at 1e78a180 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a180 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c3_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c3: i2c-bus at 1e78a200 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a200 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c4_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c4: i2c-bus at 1e78a280 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a280 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c5_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c5: i2c-bus at 1e78a300 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a300 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c6_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c6: i2c-bus at 1e78a380 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a380 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c7_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c7: i2c-bus at 1e78a400 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a400 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c8_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c8: i2c-bus at 1e78a480 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a480 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c9_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c9: i2c-bus at 1e78a500 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a500 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c10_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c10: i2c-bus at 1e78a580 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a580 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c11_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c11: i2c-bus at 1e78a600 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a600 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c12_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c12: i2c-bus at 1e78a680 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a680 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c13_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c13: i2c-bus at 1e78a700 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a700 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c14_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c14: i2c-bus at 1e78a780 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a780 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c15_default>;
>> +				status = "disabled";
>> +			};
>> +
>> +			i2c15: i2c-bus at 1e78a800 {
>> +				#address-cells = <1>;
>> +				#size-cells = <1>;
>> +				#interrupt-cells = <1>;
>> +
>> +				reg = <0x1e78a800 0x80>;
>> +				compatible = "aspeed,ast2600-i2c-bus";
>> +				clocks = <&syscon ASPEED_CLK_APB1>;
>> +				resets = <&syscon ASPEED_RESET_I2C>;
>> +				bus-frequency = <100000>;
>> +				interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
>> +				pinctrl-names = "default";
>> +				pinctrl-0 = <&pinctrl_i2c16_default>;
>> +				status = "disabled";
>> +			};
>> +
>>   			fsim0: fsi at 1e79b000 {
>>   				compatible = "aspeed,ast2600-fsi-master", "fsi-master";
>>   				reg = <0x1e79b000 0x94>;
>>


More information about the openbmc mailing list