lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190425213532.GA32028@bogus>
Date:   Thu, 25 Apr 2019 16:35:32 -0500
From:   Rob Herring <robh@...nel.org>
To:     Yu Chen <chenyu56@...wei.com>
Cc:     linux-usb@...r.kernel.org, devicetree@...r.kernel.org,
        linux-kernel@...r.kernel.org, john.stultz@...aro.org,
        suzhuangluan@...ilicon.com, kongfei@...ilicon.com,
        liuyu712@...ilicon.com, wanghu17@...ilicon.com,
        butao@...ilicon.com, chenyao11@...wei.com,
        fangshengzhou@...ilicon.com, lipengcheng8@...wei.com,
        songxiaowei@...ilicon.com, xuyiping@...ilicon.com,
        xuyoujun4@...wei.com, yudongbin@...ilicon.com,
        zangleigang@...ilicon.com, Kishon Vijay Abraham I <kishon@...com>,
        Sergei Shtylyov <sergei.shtylyov@...entembedded.com>,
        Mark Rutland <mark.rutland@....com>,
        Binghui Wang <wangbinghui@...ilicon.com>
Subject: Re: [PATCH v6 02/13] dt-bindings: misc: Add bindings for HiSilicon
 usb hub and data role switch functionality on HiKey960

On Sat, Apr 20, 2019 at 02:40:08PM +0800, Yu Chen wrote:
> This patch adds binding documentation to support usb hub and usb
> data role switch of Hisilicon HiKey960 Board.

Sorry I've been slow to really review this, but I needed to look at the 
schematics to see what exactly is going on here.

I think this needs some changes to better reflect the h/w and utilize 
existing bindings. It should really be designed ignoring the muxing to 
start with. Define the binding for the TypeC connector and then the host 
hub and make sure they can coexist. Then overlay what you need to switch 
between the 2 modes which AFAICT is just a single GPIO. 

> 
> Cc: Kishon Vijay Abraham I <kishon@...com>
> Cc: Sergei Shtylyov <sergei.shtylyov@...entembedded.com>
> Cc: Rob Herring <robh+dt@...nel.org>
> Cc: Mark Rutland <mark.rutland@....com>
> Cc: John Stultz <john.stultz@...aro.org>
> Cc: Binghui Wang <wangbinghui@...ilicon.com>
> Signed-off-by: Yu Chen <chenyu56@...wei.com>
> ---
> v1:
> * Fix some format errors as suggested by Sergei.
> * Modify gpio description to use gpiod API.
> v2:
> * Remove information about Hikey.
> * Fix gpio description.
> * Remove device_type of endpoint.
> v3:
> * Remove property typec-vbus-enable-val.
> * Add description of pinctrl-names.
> * Add example for "hisilicon,gpio-hubv1"
> * Add flag in gpiod properties.
> ---
> ---
>  .../bindings/misc/hisilicon-hikey-usb.txt          | 52 ++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.txt
> 
> diff --git a/Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.txt b/Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.txt
> new file mode 100644
> index 000000000000..422e844df719
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.txt
> @@ -0,0 +1,52 @@
> +Support usb hub and usb data role switch of Hisilicon HiKey960 Board.
> +
> +-----------------------------
> +
> +Required properties:
> +- compatible: "hisilicon,gpio-hubv1","hisilicon,hikey960-usb"
> +- typec-vbus-gpios: gpio to control the vbus of typeC port

This should be a gpio regulator and then connected to 'vbus-supply' in a 
usb-connector node (see .../bindings/connectors/usb-connector.txt). 

Then you also need the RT1711HWSC TypeC controller in DT. That is 
typically the parent device of the connector node. 

> +- otg-switch-gpios: gpio to switch DP & DM between the hub and typeC port

This probably belongs in USB controller node.

> +- hub-vdd33-en-gpios: gpio to enable the power of hub

This too should be a gpio regulator and then in a hub node. We have 2 
ways to represent hubs. Either as an I2C device or as a child of the 
host controller. The latter is preferred, but I'm not too sure how the 
OF graph connection linking the controller to the TypeC connector will 
work with the usb bus binding.

> +- pinctrl-names: pin configuration state name ("default")
> +- pinctrl-0: pinctrl config
> +
> +Example
> +-----
> +
> +	hisi_hikey_usb: hisi_hikey_usb {
> +		compatible = "hisilicon,hikey960-usb";
> +		typec-vbus-gpios = <&gpio25 2 GPIO_ACTIVE_HIGH>;
> +		otg-switch-gpios = <&gpio25 6 GPIO_ACTIVE_HIGH>;
> +		hub-vdd33-en-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&usbhub5734_pmx_func>;
> +
> +		port {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			hikey_usb_ep: endpoint@0 {
> +				reg = <0>;
> +				remote-endpoint = <&dwc3_role_switch_notify>;
> +			};
> +		};
> +	};
> +
> +	hisi_hikey_usb: hisi_hikey_usb {

Perhaps doesn't matter with my above feedback, but I don't understand 
the point of this 2nd example.

> +		compatible = "hisilicon,gpio-hubv1";
> +		typec-vbus-gpios = <&gpio25 2 GPIO_ACTIVE_LOW>;
> +		otg-switch-gpios = <&gpio25 6 GPIO_ACTIVE_HIGH>;
> +		hub-vdd33-en-gpios = <&gpio5 6 GPIO_ACTIVE_HIGH>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&usbhub5734_pmx_func>;
> +
> +		port {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			hikey_usb_ep: endpoint@0 {
> +				reg = <0>;
> +				remote-endpoint = <&dwc3_role_switch_notify>;
> +			};
> +		};
> +	};
> -- 
> 2.15.0-rc2
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ