diff mbox series

[2/2] ARM: dts: aspeed: zaius: Add gpio line names

Message ID 20200306170218.79698-2-geissonator@yahoo.com (mailing list archive)
State Mainlined
Commit fa09a28ca3e966582d6d92ef1536de360c8b194b
Headers show
Series [1/2] ARM: dts: aspeed: romulus: Add gpio line names | expand

Commit Message

Andrew Geissler March 6, 2020, 5:02 p.m. UTC
Name the GPIOs to help userspace work with them. The names describe the
functionality the lines provide, not the net or ball name. This makes it
easier to share userspace code across different systems and makes the
use of the lines more obvious.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
---
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 37 +++++++++++++++++++---
 1 file changed, 33 insertions(+), 4 deletions(-)

Comments

Andrew Jeffery March 26, 2020, 11:20 p.m. UTC | #1
On Sat, 7 Mar 2020, at 03:32, Andrew Geissler wrote:
> Name the GPIOs to help userspace work with them. The names describe the
> functionality the lines provide, not the net or ball name. This makes it
> easier to share userspace code across different systems and makes the
> use of the lines more obvious.
> 
> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>

So we're creating a bit of an ad-hoc ABI here between the DT and userspace.

Where are we documenting it?

Generally I think the idea is good though, so:

Acked-by: Andrew Jeffery <andrew@aj.id.au>

> ---
>  arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 37 +++++++++++++++++++---
>  1 file changed, 33 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts 
> b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
> index bc60ec291681..4bcc82046362 100644
> --- a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
> +++ b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
> @@ -478,32 +478,61 @@
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&pinctrl_gpioh_unbiased>;
>  
> +	gpio-line-names =
> +	/*A0-A7*/	"","cfam-reset","","","","","","",
> +	/*B0-B7*/	"","","","","","","","",
> +	/*C0-C7*/	"","","","","","","","",
> +	/*D0-D7*/	"fsi-enable","","","","","led-sys-boot-status","led-attention",
> +				"led-fault",
> +	/*E0-E7*/	"","","","","","","","presence-pcie-e2b",
> +	/*F0-F7*/	"","","","","","","","checkstop",
> +	/*G0-G7*/	"fsi-clock","fsi-data","","","","","","",
> +	/*H0-H7*/	"onewire0","onewire1","onewire2","onewire3","","","","",
> +	/*I0-I7*/	"","","","power-button","","","","",
> +	/*J0-J7*/	"","","","","","","","",
> +	/*K0-K7*/	"","","","","","","","",
> +	/*L0-L7*/	"","","","","","","","",
> +	/*M0-M7*/	"","","","","","","","",
> +	/*N0-N7*/	"","","","","","","","",
> +	/*O0-O7*/	"","","","","iso_u164_en","","fsi-trans","",
> +	/*P0-P7*/	"ncsi_mux_en_n","bmc_i2c2_sw_rst_n","","bmc_i2c5_sw_rst_n","",
> +				"","fsi-mux","",
> +	/*Q0-Q7*/	"","","","","","","","",
> +	/*R0-R7*/	"","","","","","","","",
> +	/*S0-S7*/	"","","","","","","","",
> +	/*T0-T7*/	"","","","","","","","",
> +	/*U0-U7*/	"","","","","","","","",
> +	/*V0-V7*/	"","","","","","","","",
> +	/*W0-W7*/	"","","","","","","","",
> +	/*X0-X7*/	"","","","","","","","",
> +	/*Y0-Y7*/	"","","","","","","","",
> +	/*Z0-Z7*/	"","","","","","","","",
> +	/*AA0-AA7*/	"","","led-hdd-fault","","","","","",
> +	/*AB0-AB7*/	"","","","","","","","",
> +	/*AC0-AC7*/	"","","","","","","","";
> +
>  	line_iso_u146_en {
>  		gpio-hog;
>  		gpios = <ASPEED_GPIO(O, 4) GPIO_ACTIVE_HIGH>;
>  		output-high;
> -		line-name = "iso_u164_en";
>  	};
>  
>  	ncsi_mux_en_n {
>  		gpio-hog;
>  		gpios = <ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
>  		output-low;
> -		line-name = "ncsi_mux_en_n";
>  	};
>  
>  	line_bmc_i2c2_sw_rst_n {
>  		gpio-hog;
>  		gpios = <ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
>  		output-high;
> -		line-name = "bmc_i2c2_sw_rst_n";
>  	};
>  
>  	line_bmc_i2c5_sw_rst_n {
>  		gpio-hog;
>  		gpios = <ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
>  		output-high;
> -		line-name = "bmc_i2c5_sw_rst_n";
>  	};
>  };
>  
> -- 
> 2.21.0 (Apple Git-122)
> 
>
Andrew Geissler March 30, 2020, 6:16 p.m. UTC | #2
> On Mar 26, 2020, at 6:20 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
> 
> 
> 
> On Sat, 7 Mar 2020, at 03:32, Andrew Geissler wrote:
>> Name the GPIOs to help userspace work with them. The names describe the
>> functionality the lines provide, not the net or ball name. This makes it
>> easier to share userspace code across different systems and makes the
>> use of the lines more obvious.
>> 
>> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
> 
> So we're creating a bit of an ad-hoc ABI here between the DT and userspace.
> 
> Where are we documenting it?

Yeah, so far it’s basically design by precedent. If you want your OpenBMC
function to work then follow the standards we're setting in other dts’s.

Is there a good place to document this? I could create a OpenBMC design
doc but that would not address non-OpenBMC areas.

> 
> Generally I think the idea is good though, so:
> 
> Acked-by: Andrew Jeffery <andrew@aj.id.au>

Thanks

> 
>> ---
>> arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 37 +++++++++++++++++++---
>> 1 file changed, 33 insertions(+), 4 deletions(-)
>> 
>> diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts 
>> b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
>> index bc60ec291681..4bcc82046362 100644
>> --- a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
>> +++ b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
>> @@ -478,32 +478,61 @@
>> 	pinctrl-names = "default";
>> 	pinctrl-0 = <&pinctrl_gpioh_unbiased>;
>> 
>> +	gpio-line-names =
>> +	/*A0-A7*/	"","cfam-reset","","","","","","",
>> +	/*B0-B7*/	"","","","","","","","",
>> +	/*C0-C7*/	"","","","","","","","",
>> +	/*D0-D7*/	"fsi-enable","","","","","led-sys-boot-status","led-attention",
>> +				"led-fault",
>> +	/*E0-E7*/	"","","","","","","","presence-pcie-e2b",
>> +	/*F0-F7*/	"","","","","","","","checkstop",
>> +	/*G0-G7*/	"fsi-clock","fsi-data","","","","","","",
>> +	/*H0-H7*/	"onewire0","onewire1","onewire2","onewire3","","","","",
>> +	/*I0-I7*/	"","","","power-button","","","","",
>> +	/*J0-J7*/	"","","","","","","","",
>> +	/*K0-K7*/	"","","","","","","","",
>> +	/*L0-L7*/	"","","","","","","","",
>> +	/*M0-M7*/	"","","","","","","","",
>> +	/*N0-N7*/	"","","","","","","","",
>> +	/*O0-O7*/	"","","","","iso_u164_en","","fsi-trans","",
>> +	/*P0-P7*/	"ncsi_mux_en_n","bmc_i2c2_sw_rst_n","","bmc_i2c5_sw_rst_n","",
>> +				"","fsi-mux","",
>> +	/*Q0-Q7*/	"","","","","","","","",
>> +	/*R0-R7*/	"","","","","","","","",
>> +	/*S0-S7*/	"","","","","","","","",
>> +	/*T0-T7*/	"","","","","","","","",
>> +	/*U0-U7*/	"","","","","","","","",
>> +	/*V0-V7*/	"","","","","","","","",
>> +	/*W0-W7*/	"","","","","","","","",
>> +	/*X0-X7*/	"","","","","","","","",
>> +	/*Y0-Y7*/	"","","","","","","","",
>> +	/*Z0-Z7*/	"","","","","","","","",
>> +	/*AA0-AA7*/	"","","led-hdd-fault","","","","","",
>> +	/*AB0-AB7*/	"","","","","","","","",
>> +	/*AC0-AC7*/	"","","","","","","","";
>> +
>> 	line_iso_u146_en {
>> 		gpio-hog;
>> 		gpios = <ASPEED_GPIO(O, 4) GPIO_ACTIVE_HIGH>;
>> 		output-high;
>> -		line-name = "iso_u164_en";
>> 	};
>> 
>> 	ncsi_mux_en_n {
>> 		gpio-hog;
>> 		gpios = <ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
>> 		output-low;
>> -		line-name = "ncsi_mux_en_n";
>> 	};
>> 
>> 	line_bmc_i2c2_sw_rst_n {
>> 		gpio-hog;
>> 		gpios = <ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
>> 		output-high;
>> -		line-name = "bmc_i2c2_sw_rst_n";
>> 	};
>> 
>> 	line_bmc_i2c5_sw_rst_n {
>> 		gpio-hog;
>> 		gpios = <ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
>> 		output-high;
>> -		line-name = "bmc_i2c5_sw_rst_n";
>> 	};
>> };
>> 
>> -- 
>> 2.21.0 (Apple Git-122)
>> 
>>
Andrew Jeffery April 3, 2020, 12:51 a.m. UTC | #3
On Tue, 31 Mar 2020, at 04:46, Andrew Geissler wrote:
> 
> 
> > On Mar 26, 2020, at 6:20 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
> > 
> > 
> > 
> > On Sat, 7 Mar 2020, at 03:32, Andrew Geissler wrote:
> >> Name the GPIOs to help userspace work with them. The names describe the
> >> functionality the lines provide, not the net or ball name. This makes it
> >> easier to share userspace code across different systems and makes the
> >> use of the lines more obvious.
> >> 
> >> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
> > 
> > So we're creating a bit of an ad-hoc ABI here between the DT and userspace.
> > 
> > Where are we documenting it?
> 
> Yeah, so far it’s basically design by precedent. If you want your OpenBMC
> function to work then follow the standards we're setting in other dts’s.
> 
> Is there a good place to document this? I could create a OpenBMC design
> doc but that would not address non-OpenBMC areas.

Don't let perfect be the enemy of good enough :) Lets document it in OpenBMC
and then look at alternatives if we find it's necessary. I don't think we will given
that the contract is between the kernel and OpenBMC userspace.

Andrew
Andrew Geissler April 3, 2020, 4:19 p.m. UTC | #4
> On Apr 2, 2020, at 7:51 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
> 
> 
> 
> On Tue, 31 Mar 2020, at 04:46, Andrew Geissler wrote:
>> 
>> 
>>> On Mar 26, 2020, at 6:20 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
>>> 
>>> 
>>> 
>>> On Sat, 7 Mar 2020, at 03:32, Andrew Geissler wrote:
>>>> Name the GPIOs to help userspace work with them. The names describe the
>>>> functionality the lines provide, not the net or ball name. This makes it
>>>> easier to share userspace code across different systems and makes the
>>>> use of the lines more obvious.
>>>> 
>>>> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
>>> 
>>> So we're creating a bit of an ad-hoc ABI here between the DT and userspace.
>>> 
>>> Where are we documenting it?
>> 
>> Yeah, so far it’s basically design by precedent. If you want your OpenBMC
>> function to work then follow the standards we're setting in other dts’s.
>> 
>> Is there a good place to document this? I could create a OpenBMC design
>> doc but that would not address non-OpenBMC areas.
> 
> Don't let perfect be the enemy of good enough :) Lets document it in OpenBMC
> and then look at alternatives if we find it's necessary. I don't think we will given
> that the contract is between the kernel and OpenBMC userspace.

Ok, I put a doc up for review here:
https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/30988

> 
> Andrew
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
index bc60ec291681..4bcc82046362 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
@@ -478,32 +478,61 @@ 
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_gpioh_unbiased>;
 
+	gpio-line-names =
+	/*A0-A7*/	"","cfam-reset","","","","","","",
+	/*B0-B7*/	"","","","","","","","",
+	/*C0-C7*/	"","","","","","","","",
+	/*D0-D7*/	"fsi-enable","","","","","led-sys-boot-status","led-attention",
+				"led-fault",
+	/*E0-E7*/	"","","","","","","","presence-pcie-e2b",
+	/*F0-F7*/	"","","","","","","","checkstop",
+	/*G0-G7*/	"fsi-clock","fsi-data","","","","","","",
+	/*H0-H7*/	"onewire0","onewire1","onewire2","onewire3","","","","",
+	/*I0-I7*/	"","","","power-button","","","","",
+	/*J0-J7*/	"","","","","","","","",
+	/*K0-K7*/	"","","","","","","","",
+	/*L0-L7*/	"","","","","","","","",
+	/*M0-M7*/	"","","","","","","","",
+	/*N0-N7*/	"","","","","","","","",
+	/*O0-O7*/	"","","","","iso_u164_en","","fsi-trans","",
+	/*P0-P7*/	"ncsi_mux_en_n","bmc_i2c2_sw_rst_n","","bmc_i2c5_sw_rst_n","",
+				"","fsi-mux","",
+	/*Q0-Q7*/	"","","","","","","","",
+	/*R0-R7*/	"","","","","","","","",
+	/*S0-S7*/	"","","","","","","","",
+	/*T0-T7*/	"","","","","","","","",
+	/*U0-U7*/	"","","","","","","","",
+	/*V0-V7*/	"","","","","","","","",
+	/*W0-W7*/	"","","","","","","","",
+	/*X0-X7*/	"","","","","","","","",
+	/*Y0-Y7*/	"","","","","","","","",
+	/*Z0-Z7*/	"","","","","","","","",
+	/*AA0-AA7*/	"","","led-hdd-fault","","","","","",
+	/*AB0-AB7*/	"","","","","","","","",
+	/*AC0-AC7*/	"","","","","","","","";
+
 	line_iso_u146_en {
 		gpio-hog;
 		gpios = <ASPEED_GPIO(O, 4) GPIO_ACTIVE_HIGH>;
 		output-high;
-		line-name = "iso_u164_en";
 	};
 
 	ncsi_mux_en_n {
 		gpio-hog;
 		gpios = <ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
 		output-low;
-		line-name = "ncsi_mux_en_n";
 	};
 
 	line_bmc_i2c2_sw_rst_n {
 		gpio-hog;
 		gpios = <ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
 		output-high;
-		line-name = "bmc_i2c2_sw_rst_n";
 	};
 
 	line_bmc_i2c5_sw_rst_n {
 		gpio-hog;
 		gpios = <ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
 		output-high;
-		line-name = "bmc_i2c5_sw_rst_n";
 	};
 };