* [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver @ 2016-08-09 23:32 ` Chris Zhong 2016-08-09 23:32 ` [v10 PATCH 1/5] Documentation: bindings: add dt doc for Rockchip USB Type-C PHY Chris Zhong ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Chris Zhong @ 2016-08-09 23:32 UTC (permalink / raw) To: dianders, tfiga, heiko, yzq, groeck, myungjoo.ham, cw00.choi, wulf, marcheu Cc: Mark Rutland, devicetree, Pawel Moll, Ian Campbell, Catalin Marinas, Will Deacon, Kever Yang, dri-devel, linux-kernel, linux-rockchip, Rob Herring, linux-arm-kernel, Kumar Gala, Chris Zhong, Kishon Vijay Abraham I, Guenter Roeck Hi all This series patch is for rockchip Type-C phy and DisplayPort controller driver. The USB Type-C PHY is designed to support the USB3 and DP applications. The PHY basically has two main components: USB3 and DisplyPort. USB3 operates in SuperSpeed mode and the DP can operate at RBR, HBR and HBR2 data rates. The Type-C cable orientation detection and Power Delivery (PD) is accomplished using a PD PHY or a exernal PD chip. The DP controller is compliant with DisplayPort Specification, Version 1.3, This IP is compatible with the rockchip type-c PHY IP. There is a uCPU in DP controller, it need a firmware to work, please put the firmware file[0] to /lib/firmware/rockchip/dptx.bin. The uCPU in charge of aux communication and link training, the host use mailbox to communicate with the ucpu. The DP contoller has register a notification with extcon API, to get the alt mode from PD, the PD driver need call the devm_extcon_dev_allocate to create a extcon device and use extcon_set_state to notify DP controller. And call extcon_set_cable_property to set orientation. About the DP audio, cdn-dp registered 2 DAIs: 0 is I2S, 1 is SPDIF. We can reference them in simple-card. This series is based on Mark Yao's branch[1] and Chanwoo Choi's extcon-next branch[2], and the clk patch[3]. I test this patches on the rk3399-evb board, with a fusb302 driver, this branch has no rk3399.dtsi, so the patch about dts is not included in this series. From V9, the Type-C PHY is split into two PHYs: DP and USB3. The PHY will be init, no matter which PHY be power_on. The DP module will enter A2 mode (standby mode) after phy_init, if DP PHY is powered on, the DP module will enter to A0 mode(running mode). Then if DP PHY is powered off, DP module will back to A2 mode. If everything is un-plugged, phy will be deinit. [0] https://patchwork.kernel.org/patch/9249693/ [1] https://github.com/markyzq/kernel-drm-rockchip/tree/drm-rockchip-next-2016-05-23 [2] https://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/log/?h=extcon-test - extcon: Add the extcon_type to gather each connector into five category - extcon: Add the support for extcon property according to extcon type - extcon: Add the support for the capability of each property - extcon: Rename the extcon_set/get_state() to maintain the function naming pattern - extcon: Add the synchronization extcon APIs to support the notification - extcon: Add EXTCON_DISP_DP and the property for USB Type-C [3] https://patchwork.kernel.org/patch/9271981/ Changes in v10: - remove rockchip,uphy-dp-sel property - do not control dp select and hpd config in phy driver - remove rockchip,uphy-dp-sel property - add pclk_vio_grf clock - control the grf_clk in DP Changes in v9: - change #phy-cells to 1 - the new_mode should be int not u8 - move mutex_lock(&tcphy->lock); to earlier place. in rockchip_usb3_phy_power_off - better mutex lock for phy mode and flip - split the Type-C PHY into two PHYs: USB3 and DP - change #phy-cells to 1 - modify the reference phy = <&tcphy0 0>, <&tcphy1 0>; - do not need reset the phy before power_on - add a orientation information for set_capability - retry to read dpcd in 10 seconds Changes in v8: - set the default cable id to EXTCON_USB_HOST - optimization Error log - optimization the err log Changes in v7: - support new API of extcon - support firmware standby when no dptx connection - optimization the calculation of tu size and valid symbol Changes in v6: - add assigned-clocks and assigned-clock-rates - delete the support of PIN_ASSIGN_A/B - set the default mode to MODE_DFP_USB - disable DP PLL at USB3 only mode - add assigned-clocks and assigned-clock-rates - add power-domains - add a port struct - select SND_SOC_HDMI_CODEC - force reset the phy when hpd detected Changes in v5: - support get property from extcon - remove PIN ASSIGN A/B support - alphabetical order - do not use long, use u32 or u64 - return MODE_CLOCK_HIGH when requested > actual - Optimized Coding Style - add a formula to get better tu size and symbol value. - modify according to Sean Paul's comments - fixed the fw_wait always 0 Changes in v4: - add a #phy-cells node - select EXTCON - use phy framework to control the USB3 and DP function - rename PIN_MAP_ to PIN_ASSIGN_ - add a reset node - support 2 phys - use phy framework to control DP phy - support 2 phys Changes in v3: - use compatible: rockchip,rk3399-typec-phy - use dashes instead of underscores. - remove the phy framework(Kishon Vijay Abraham I) - add parentheses around the macro - use a single space between type and name - add spaces after opening and before closing braces. - use u16 for register value - remove type-c phy header file - CodingStyle optimization - use some cable extcon to get type-c port information - add a extcon to notify Display Port - add SoC specific compatible string - remove reg = <1>; - use EXTCON_DISP_DP and EXTCON_DISP_DP_ALT cable to get dp port state. - reset spdif before config it - modify the firmware clk to 100Mhz - retry load firmware if fw file is requested too early Changes in v2: - add some registers description - select RESET_CONTROLLER - alphabetic order - modify some spelling mistakes - make mode cleaner - use bool for enable/disable - check all of the return value - return a better err number - use more readx_poll_timeout() - clk_disable_unprepare(tcphy->clk_ref); - remove unuse functions, rockchip_typec_phy_power_on/off - remove unnecessary typecast from void * - use dts node to distinguish between phys. - Alphabetic order - remove excess error message - use define clk_rate - check all return value - remove dev_set_name(dp->dev, "cdn-dp"); - use schedule_delayed_work - remove never-called functions - remove some unnecessary () Changes in v1: - add extcon node description - move the registers in phy driver - remove the suffix of reset - update the licence note - init core clock to 50MHz - use extcon API - remove unused global - add some comments for magic num - change usleep_range(1000, 2000) tousleep_range(1000, 1050) - remove __func__ from dev_err - return err number when get clk failed - remove ADDR_ADJ define - use devm_clk_get(&pdev->dev, "tcpdcore") - add extcon node description - add #sound-dai-cells description - use extcon API - use hdmi-codec for the DP Asoc - do not initialize the "ret" - printk a err log when drm_of_encoder_active_endpoint_id - modify the dclk pin_pol to a single line Chris Zhong (5): Documentation: bindings: add dt doc for Rockchip USB Type-C PHY phy: Add USB Type-C PHY driver for rk3399 arm64: dts: rockchip: add Type-C phy for RK3399 Documentation: bindings: add dt documentation for cdn DP controller drm/rockchip: cdn-dp: add cdn DP support for rk3399 .../bindings/display/rockchip/cdn-dp-rockchip.txt | 74 ++ .../devicetree/bindings/phy/phy-rockchip-typec.txt | 82 ++ arch/arm64/boot/dts/rockchip/rk3399.dtsi | 42 + drivers/gpu/drm/rockchip/Kconfig | 10 + drivers/gpu/drm/rockchip/Makefile | 1 + drivers/gpu/drm/rockchip/cdn-dp-core.c | 910 +++++++++++++++++++ drivers/gpu/drm/rockchip/cdn-dp-core.h | 104 +++ drivers/gpu/drm/rockchip/cdn-dp-reg.c | 959 ++++++++++++++++++++ drivers/gpu/drm/rockchip/cdn-dp-reg.h | 482 ++++++++++ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 13 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 9 + drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 2 + drivers/phy/Kconfig | 9 + drivers/phy/Makefile | 1 + drivers/phy/phy-rockchip-typec.c | 981 +++++++++++++++++++++ 15 files changed, 3676 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt create mode 100644 Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt create mode 100644 drivers/gpu/drm/rockchip/cdn-dp-core.c create mode 100644 drivers/gpu/drm/rockchip/cdn-dp-core.h create mode 100644 drivers/gpu/drm/rockchip/cdn-dp-reg.c create mode 100644 drivers/gpu/drm/rockchip/cdn-dp-reg.h create mode 100644 drivers/phy/phy-rockchip-typec.c -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 7+ messages in thread
* [v10 PATCH 1/5] Documentation: bindings: add dt doc for Rockchip USB Type-C PHY 2016-08-09 23:32 ` [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver Chris Zhong @ 2016-08-09 23:32 ` Chris Zhong 2016-08-10 22:10 ` Guenter Roeck [not found] ` <1470785557-21974-1-git-send-email-zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2016-08-09 23:32 ` [v10 PATCH 4/5] Documentation: bindings: add dt documentation for cdn DP controller Chris Zhong 2 siblings, 1 reply; 7+ messages in thread From: Chris Zhong @ 2016-08-09 23:32 UTC (permalink / raw) To: dianders, tfiga, heiko, yzq, groeck, myungjoo.ham, cw00.choi, wulf, marcheu Cc: linux-rockchip, Chris Zhong, devicetree, Kever Yang, Kumar Gala, linux-kernel, Ian Campbell, Rob Herring, Pawel Moll, Mark Rutland, linux-arm-kernel This patch adds a binding that describes the Rockchip USB Type-C PHY for rk3399 Signed-off-by: Chris Zhong <zyw@rock-chips.com> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Acked-by: Rob Herring <robh@kernel.org> --- Changes in v10: - remove rockchip,uphy-dp-sel property Changes in v9: - change #phy-cells to 1 Changes in v8: None Changes in v7: None Changes in v6: - add assigned-clocks and assigned-clock-rates Changes in v5: None Changes in v4: - add a #phy-cells node Changes in v3: - use compatible: rockchip,rk3399-typec-phy - use dashes instead of underscores. Changes in v2: - add some registers description Changes in v1: - add extcon node description - move the registers in phy driver - remove the suffix of reset .../devicetree/bindings/phy/phy-rockchip-typec.txt | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt b/Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt new file mode 100644 index 0000000..bf372e6 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt @@ -0,0 +1,82 @@ +* ROCKCHIP type-c PHY +--------------------- + +Required properties: + - compatible : must be "rockchip,rk3399-typec-phy" + - reg: Address and length of the usb phy control register set + - rockchip,grf : phandle to the syscon managing the "general + register files" + - clocks : phandle + clock specifier for the phy clocks + - clock-names : string, clock name, must be "tcpdcore", "tcpdphy-ref"; + - assigned-clocks: main clock, should be <&cru SCLK_UPHY0_TCPDCORE> or + <&cru SCLK_UPHY1_TCPDCORE>; + - assigned-clock-rates : the phy core clk frequency, shall be: 50000000 + - resets : a list of phandle + reset specifier pairs + - reset-names : string reset name, must be: + "uphy", "uphy-pipe", "uphy-tcphy" + - extcon : extcon specifier for the Power Delivery + - #phy-cells: must be 1. create 2 PHY node: + <&tcphy0 0> and <&tcphy1 0> for DP PHY. + <&tcphy0 1> and <&tcphy1 1> for USB3 PHY. + See ./phy-bindings.txt for details. + +Note, there are 2 type-c phys for RK3399, and they are almost identical, except +these registers(description below), every register node contains 3 sections: +offset, enable bit, write mask bit. + - rockchip,typec-conn-dir : the register of type-c connector direction, + for type-c phy0, it must be <0xe580 0 16>; + for type-c phy1, it must be <0xe58c 0 16>; + - rockchip,usb3tousb2-en : the register of type-c force usb3 to usb2 enable + control. + for type-c phy0, it must be <0xe580 3 19>; + for type-c phy1, it must be <0xe58c 3 19>; + - rockchip,external-psm : the register of type-c phy external psm clock + selection. + for type-c phy0, it must be <0xe588 14 30>; + for type-c phy1, it must be <0xe594 14 30>; + - rockchip,pipe-status : the register of type-c phy pipe status. + for type-c phy0, it must be <0xe5c0 0 0>; + for type-c phy1, it must be <0xe5c0 16 16>; + +Example: + tcphy0: phy@ff7c0000 { + compatible = "rockchip,rk3399-typec-phy"; + reg = <0x0 0xff7c0000 0x0 0x40000>; + rockchip,grf = <&grf>; + #phy-cells = <1>; + extcon = <&fusb0>; + clocks = <&cru SCLK_UPHY0_TCPDCORE>, + <&cru SCLK_UPHY0_TCPDPHY_REF>; + clock-names = "tcpdcore", "tcpdphy-ref"; + assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>; + assigned-clock-rates = <50000000>; + resets = <&cru SRST_UPHY0>, + <&cru SRST_UPHY0_PIPE_L00>, + <&cru SRST_P_UPHY0_TCPHY>; + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; + rockchip,typec-conn-dir = <0xe580 0 16>; + rockchip,usb3tousb2-en = <0xe580 3 19>; + rockchip,external-psm = <0xe588 14 30>; + rockchip,pipe-status = <0xe5c0 0 0>; + }; + + tcphy1: phy@ff800000 { + compatible = "rockchip,rk3399-typec-phy"; + reg = <0x0 0xff800000 0x0 0x40000>; + rockchip,grf = <&grf>; + #phy-cells = <1>; + extcon = <&fusb1>; + clocks = <&cru SCLK_UPHY1_TCPDCORE>, + <&cru SCLK_UPHY1_TCPDPHY_REF>; + clock-names = "tcpdcore", "tcpdphy-ref"; + assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>; + assigned-clock-rates = <50000000>; + resets = <&cru SRST_UPHY1>, + <&cru SRST_UPHY1_PIPE_L00>, + <&cru SRST_P_UPHY1_TCPHY>; + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; + rockchip,typec-conn-dir = <0xe58c 0 16>; + rockchip,usb3tousb2-en = <0xe58c 3 19>; + rockchip,external-psm = <0xe594 14 30>; + rockchip,pipe-status = <0xe5c0 16 16>; + }; -- 1.9.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [v10 PATCH 1/5] Documentation: bindings: add dt doc for Rockchip USB Type-C PHY 2016-08-09 23:32 ` [v10 PATCH 1/5] Documentation: bindings: add dt doc for Rockchip USB Type-C PHY Chris Zhong @ 2016-08-10 22:10 ` Guenter Roeck 0 siblings, 0 replies; 7+ messages in thread From: Guenter Roeck @ 2016-08-10 22:10 UTC (permalink / raw) To: Chris Zhong Cc: Douglas Anderson, Tomasz Figa, Heiko Stübner, 姚智情, Guenter Roeck, myungjoo.ham, Chanwoo Choi, wulf, Stéphane Marchesin, open list:ARM/Rockchip SoC..., devicetree, Kever Yang, Kumar Gala, linux-kernel, Ian Campbell, Rob Herring, Pawel Moll, Mark Rutland, linux-arm-kernel On Tue, Aug 9, 2016 at 4:32 PM, Chris Zhong <zyw@rock-chips.com> wrote: > This patch adds a binding that describes the Rockchip USB Type-C PHY > for rk3399 > > Signed-off-by: Chris Zhong <zyw@rock-chips.com> > Reviewed-by: Tomasz Figa <tfiga@chromium.org> > Reviewed-by: Kever Yang <kever.yang@rock-chips.com> > Acked-by: Rob Herring <robh@kernel.org> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > > --- > > Changes in v10: > - remove rockchip,uphy-dp-sel property > > Changes in v9: > - change #phy-cells to 1 > > Changes in v8: None > Changes in v7: None > Changes in v6: > - add assigned-clocks and assigned-clock-rates > > Changes in v5: None > Changes in v4: > - add a #phy-cells node > > Changes in v3: > - use compatible: rockchip,rk3399-typec-phy > - use dashes instead of underscores. > > Changes in v2: > - add some registers description > > Changes in v1: > - add extcon node description > - move the registers in phy driver > - remove the suffix of reset > > .../devicetree/bindings/phy/phy-rockchip-typec.txt | 82 ++++++++++++++++++++++ > 1 file changed, 82 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt > > diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt b/Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt > new file mode 100644 > index 0000000..bf372e6 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt > @@ -0,0 +1,82 @@ > +* ROCKCHIP type-c PHY > +--------------------- > + > +Required properties: > + - compatible : must be "rockchip,rk3399-typec-phy" > + - reg: Address and length of the usb phy control register set > + - rockchip,grf : phandle to the syscon managing the "general > + register files" > + - clocks : phandle + clock specifier for the phy clocks > + - clock-names : string, clock name, must be "tcpdcore", "tcpdphy-ref"; > + - assigned-clocks: main clock, should be <&cru SCLK_UPHY0_TCPDCORE> or > + <&cru SCLK_UPHY1_TCPDCORE>; > + - assigned-clock-rates : the phy core clk frequency, shall be: 50000000 > + - resets : a list of phandle + reset specifier pairs > + - reset-names : string reset name, must be: > + "uphy", "uphy-pipe", "uphy-tcphy" > + - extcon : extcon specifier for the Power Delivery > + - #phy-cells: must be 1. create 2 PHY node: > + <&tcphy0 0> and <&tcphy1 0> for DP PHY. > + <&tcphy0 1> and <&tcphy1 1> for USB3 PHY. > + See ./phy-bindings.txt for details. > + > +Note, there are 2 type-c phys for RK3399, and they are almost identical, except > +these registers(description below), every register node contains 3 sections: > +offset, enable bit, write mask bit. > + - rockchip,typec-conn-dir : the register of type-c connector direction, > + for type-c phy0, it must be <0xe580 0 16>; > + for type-c phy1, it must be <0xe58c 0 16>; > + - rockchip,usb3tousb2-en : the register of type-c force usb3 to usb2 enable > + control. > + for type-c phy0, it must be <0xe580 3 19>; > + for type-c phy1, it must be <0xe58c 3 19>; > + - rockchip,external-psm : the register of type-c phy external psm clock > + selection. > + for type-c phy0, it must be <0xe588 14 30>; > + for type-c phy1, it must be <0xe594 14 30>; > + - rockchip,pipe-status : the register of type-c phy pipe status. > + for type-c phy0, it must be <0xe5c0 0 0>; > + for type-c phy1, it must be <0xe5c0 16 16>; > + > +Example: > + tcphy0: phy@ff7c0000 { > + compatible = "rockchip,rk3399-typec-phy"; > + reg = <0x0 0xff7c0000 0x0 0x40000>; > + rockchip,grf = <&grf>; > + #phy-cells = <1>; > + extcon = <&fusb0>; > + clocks = <&cru SCLK_UPHY0_TCPDCORE>, > + <&cru SCLK_UPHY0_TCPDPHY_REF>; > + clock-names = "tcpdcore", "tcpdphy-ref"; > + assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>; > + assigned-clock-rates = <50000000>; > + resets = <&cru SRST_UPHY0>, > + <&cru SRST_UPHY0_PIPE_L00>, > + <&cru SRST_P_UPHY0_TCPHY>; > + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; > + rockchip,typec-conn-dir = <0xe580 0 16>; > + rockchip,usb3tousb2-en = <0xe580 3 19>; > + rockchip,external-psm = <0xe588 14 30>; > + rockchip,pipe-status = <0xe5c0 0 0>; > + }; > + > + tcphy1: phy@ff800000 { > + compatible = "rockchip,rk3399-typec-phy"; > + reg = <0x0 0xff800000 0x0 0x40000>; > + rockchip,grf = <&grf>; > + #phy-cells = <1>; > + extcon = <&fusb1>; > + clocks = <&cru SCLK_UPHY1_TCPDCORE>, > + <&cru SCLK_UPHY1_TCPDPHY_REF>; > + clock-names = "tcpdcore", "tcpdphy-ref"; > + assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>; > + assigned-clock-rates = <50000000>; > + resets = <&cru SRST_UPHY1>, > + <&cru SRST_UPHY1_PIPE_L00>, > + <&cru SRST_P_UPHY1_TCPHY>; > + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; > + rockchip,typec-conn-dir = <0xe58c 0 16>; > + rockchip,usb3tousb2-en = <0xe58c 3 19>; > + rockchip,external-psm = <0xe594 14 30>; > + rockchip,pipe-status = <0xe5c0 16 16>; > + }; > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <1470785557-21974-1-git-send-email-zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* [v10 PATCH 3/5] arm64: dts: rockchip: add Type-C phy for RK3399 [not found] ` <1470785557-21974-1-git-send-email-zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org> @ 2016-08-09 23:32 ` Chris Zhong 2016-08-10 0:37 ` [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver Chanwoo Choi 1 sibling, 0 replies; 7+ messages in thread From: Chris Zhong @ 2016-08-09 23:32 UTC (permalink / raw) To: dianders-F7+t8E8rja9g9hUCZPvPmw, tfiga-F7+t8E8rja9g9hUCZPvPmw, heiko-4mtYJXux2i+zQB+pC5nmwQ, yzq-TNX95d0MmH7DzftRWevZcw, groeck-F7+t8E8rja9g9hUCZPvPmw, myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ, cw00.choi-Sze3O3UU22JBDgjK7y7TUQ, wulf-TNX95d0MmH7DzftRWevZcw, marcheu-F7+t8E8rja9g9hUCZPvPmw Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Chris Zhong, devicetree-u79uwXL29TY76Z2rM5mHXA, Guenter Roeck, Kumar Gala, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Ian Campbell, Rob Herring, Pawel Moll, Will Deacon, Mark Rutland, Catalin Marinas, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r There are 2 Type-C phy on RK3399, they are almost same, except the address of register. They support USB3.0 Type-C and DisplayPort1.3 Alt Mode on USB Type-C. Register a phy, supply it to USB3 controller and DP controller. Signed-off-by: Chris Zhong <zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org> Reviewed-by: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org> --- Changes in v10: - remove rockchip,uphy-dp-sel property Changes in v9: - change #phy-cells to 1 Changes in v8: None Changes in v7: None Changes in v6: None Changes in v5: None Changes in v4: None Changes in v3: None Changes in v2: None Changes in v1: None arch/arm64/boot/dts/rockchip/rk3399.dtsi | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi index a6dd623..8fd6729 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi @@ -774,6 +774,48 @@ }; }; + tcphy0: phy@ff7c0000 { + compatible = "rockchip,rk3399-typec-phy"; + reg = <0x0 0xff7c0000 0x0 0x40000>; + rockchip,grf = <&grf>; + #phy-cells = <1>; + clocks = <&cru SCLK_UPHY0_TCPDCORE>, + <&cru SCLK_UPHY0_TCPDPHY_REF>; + clock-names = "tcpdcore", "tcpdphy-ref"; + assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>; + assigned-clock-rates = <50000000>; + resets = <&cru SRST_UPHY0>, + <&cru SRST_UPHY0_PIPE_L00>, + <&cru SRST_P_UPHY0_TCPHY>; + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; + rockchip,typec-conn-dir = <0xe580 0 16>; + rockchip,usb3tousb2-en = <0xe580 3 19>; + rockchip,external-psm = <0xe588 14 30>; + rockchip,pipe-status = <0xe5c0 0 0>; + status = "disabled"; + }; + + tcphy1: phy@ff800000 { + compatible = "rockchip,rk3399-typec-phy"; + reg = <0x0 0xff800000 0x0 0x40000>; + rockchip,grf = <&grf>; + #phy-cells = <1>; + clocks = <&cru SCLK_UPHY1_TCPDCORE>, + <&cru SCLK_UPHY1_TCPDPHY_REF>; + clock-names = "tcpdcore", "tcpdphy-ref"; + assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>; + assigned-clock-rates = <50000000>; + resets = <&cru SRST_UPHY1>, + <&cru SRST_UPHY1_PIPE_L00>, + <&cru SRST_P_UPHY1_TCPHY>; + reset-names = "uphy", "uphy-pipe", "uphy-tcphy"; + rockchip,typec-conn-dir = <0xe58c 0 16>; + rockchip,usb3tousb2-en = <0xe58c 3 19>; + rockchip,external-psm = <0xe594 14 30>; + rockchip,pipe-status = <0xe5c0 16 16>; + status = "disabled"; + }; + watchdog@ff840000 { compatible = "snps,dw-wdt"; reg = <0x0 0xff840000 0x0 0x100>; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver [not found] ` <1470785557-21974-1-git-send-email-zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2016-08-09 23:32 ` [v10 PATCH 3/5] arm64: dts: rockchip: add Type-C phy for RK3399 Chris Zhong @ 2016-08-10 0:37 ` Chanwoo Choi [not found] ` <57AA772C.1010303-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> 1 sibling, 1 reply; 7+ messages in thread From: Chanwoo Choi @ 2016-08-10 0:37 UTC (permalink / raw) To: Chris Zhong, dianders-F7+t8E8rja9g9hUCZPvPmw, tfiga-F7+t8E8rja9g9hUCZPvPmw, heiko-4mtYJXux2i+zQB+pC5nmwQ, yzq-TNX95d0MmH7DzftRWevZcw, groeck-F7+t8E8rja9g9hUCZPvPmw, myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ, wulf-TNX95d0MmH7DzftRWevZcw, marcheu-F7+t8E8rja9g9hUCZPvPmw Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-u79uwXL29TY76Z2rM5mHXA, Guenter Roeck, Will Deacon, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Kever Yang, Kumar Gala, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Ian Campbell, Rob Herring, Mark Yao, Pawel Moll, Kishon Vijay Abraham I, Mark Rutland, Catalin Marinas, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, David Airlie, cpgs (cpgs-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org) Hi Chris, On 2016년 08월 10일 08:32, Chris Zhong wrote: > Hi all > > This series patch is for rockchip Type-C phy and DisplayPort controller > driver. > > The USB Type-C PHY is designed to support the USB3 and DP applications. > The PHY basically has two main components: USB3 and DisplyPort. USB3 > operates in SuperSpeed mode and the DP can operate at RBR, HBR and HBR2 > data rates. The Type-C cable orientation detection and Power Delivery > (PD) is accomplished using a PD PHY or a exernal PD chip. > > The DP controller is compliant with DisplayPort Specification, > Version 1.3, This IP is compatible with the rockchip type-c PHY IP. > There is a uCPU in DP controller, it need a firmware to work, please > put the firmware file[0] to /lib/firmware/rockchip/dptx.bin. The uCPU > in charge of aux communication and link training, the host use mailbox > to communicate with the ucpu. > > The DP contoller has register a notification with extcon API, to get the > alt mode from PD, the PD driver need call the devm_extcon_dev_allocate > to create a extcon device and use extcon_set_state to notify DP > controller. And call extcon_set_cable_property to set orientation. > > About the DP audio, cdn-dp registered 2 DAIs: 0 is I2S, 1 is SPDIF. > We can reference them in simple-card. > > This series is based on Mark Yao's branch[1] and Chanwoo Choi's > extcon-next branch[2], and the clk patch[3]. > > I test this patches on the rk3399-evb board, with a fusb302 driver, > this branch has no rk3399.dtsi, so the patch about dts is not included > in this series. > >>From V9, the Type-C PHY is split into two PHYs: DP and USB3. The PHY > will be init, no matter which PHY be power_on. The DP module will > enter A2 mode (standby mode) after phy_init, if DP PHY is powered on, > the DP module will enter to A0 mode(running mode). Then if DP PHY is > powered off, DP module will back to A2 mode. If everything is > un-plugged, phy will be deinit. > > [0] > https://patchwork.kernel.org/patch/9249693/ > [1] > https://github.com/markyzq/kernel-drm-rockchip/tree/drm-rockchip-next-2016-05-23 > [2] > https://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/log/?h=extcon-test > - extcon: Add the extcon_type to gather each connector into five category > - extcon: Add the support for extcon property according to extcon type > - extcon: Add the support for the capability of each property > - extcon: Rename the extcon_set/get_state() to maintain the function naming > pattern > - extcon: Add the synchronization extcon APIs to support the notification > - extcon: Add EXTCON_DISP_DP and the property for USB Type-C The extcon patches are merged on extcon-next branch. So, you can check them on both extcon git and linux-next git repo. [snip] Regards, Chanwoo Choi -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <57AA772C.1010303-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>]
* Re: [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver [not found] ` <57AA772C.1010303-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> @ 2016-08-10 18:00 ` Chris Zhong 0 siblings, 0 replies; 7+ messages in thread From: Chris Zhong @ 2016-08-10 18:00 UTC (permalink / raw) To: Chanwoo Choi, dianders-F7+t8E8rja9g9hUCZPvPmw, tfiga-F7+t8E8rja9g9hUCZPvPmw, heiko-4mtYJXux2i+zQB+pC5nmwQ, yzq-TNX95d0MmH7DzftRWevZcw, groeck-F7+t8E8rja9g9hUCZPvPmw, myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ, wulf-TNX95d0MmH7DzftRWevZcw, marcheu-F7+t8E8rja9g9hUCZPvPmw Cc: Mark Rutland, devicetree-u79uwXL29TY76Z2rM5mHXA, Pawel Moll, Ian Campbell, David Airlie, Catalin Marinas, Will Deacon, Kever Yang, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Rob Herring, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, cpgs (cpgs-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org), Kumar Gala, Kishon Vijay Abraham I, Guenter Roeck, Mark Yao Hi Chanwoo On 08/10/2016 08:37 AM, Chanwoo Choi wrote: > Hi Chris, > > On 2016년 08월 10일 08:32, Chris Zhong wrote: >> Hi all >> >> This series patch is for rockchip Type-C phy and DisplayPort controller >> driver. >> >> The USB Type-C PHY is designed to support the USB3 and DP applications. >> The PHY basically has two main components: USB3 and DisplyPort. USB3 >> operates in SuperSpeed mode and the DP can operate at RBR, HBR and HBR2 >> data rates. The Type-C cable orientation detection and Power Delivery >> (PD) is accomplished using a PD PHY or a exernal PD chip. >> >> The DP controller is compliant with DisplayPort Specification, >> Version 1.3, This IP is compatible with the rockchip type-c PHY IP. >> There is a uCPU in DP controller, it need a firmware to work, please >> put the firmware file[0] to /lib/firmware/rockchip/dptx.bin. The uCPU >> in charge of aux communication and link training, the host use mailbox >> to communicate with the ucpu. >> >> The DP contoller has register a notification with extcon API, to get the >> alt mode from PD, the PD driver need call the devm_extcon_dev_allocate >> to create a extcon device and use extcon_set_state to notify DP >> controller. And call extcon_set_cable_property to set orientation. >> >> About the DP audio, cdn-dp registered 2 DAIs: 0 is I2S, 1 is SPDIF. >> We can reference them in simple-card. >> >> This series is based on Mark Yao's branch[1] and Chanwoo Choi's >> extcon-next branch[2], and the clk patch[3]. >> >> I test this patches on the rk3399-evb board, with a fusb302 driver, >> this branch has no rk3399.dtsi, so the patch about dts is not included >> in this series. >> >> >From V9, the Type-C PHY is split into two PHYs: DP and USB3. The PHY >> will be init, no matter which PHY be power_on. The DP module will >> enter A2 mode (standby mode) after phy_init, if DP PHY is powered on, >> the DP module will enter to A0 mode(running mode). Then if DP PHY is >> powered off, DP module will back to A2 mode. If everything is >> un-plugged, phy will be deinit. >> >> [0] >> https://patchwork.kernel.org/patch/9249693/ >> [1] >> https://github.com/markyzq/kernel-drm-rockchip/tree/drm-rockchip-next-2016-05-23 >> [2] >> https://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/log/?h=extcon-test >> - extcon: Add the extcon_type to gather each connector into five category >> - extcon: Add the support for extcon property according to extcon type >> - extcon: Add the support for the capability of each property >> - extcon: Rename the extcon_set/get_state() to maintain the function naming >> pattern >> - extcon: Add the synchronization extcon APIs to support the notification >> - extcon: Add EXTCON_DISP_DP and the property for USB Type-C > The extcon patches are merged on extcon-next branch. > So, you can check them on both extcon git and linux-next git repo. Oh, did not notice these extcon patches has landed. I will remove this section, if next version DP is required. > [snip] > > Regards, > Chanwoo Choi > > > > _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 7+ messages in thread
* [v10 PATCH 4/5] Documentation: bindings: add dt documentation for cdn DP controller 2016-08-09 23:32 ` [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver Chris Zhong 2016-08-09 23:32 ` [v10 PATCH 1/5] Documentation: bindings: add dt doc for Rockchip USB Type-C PHY Chris Zhong [not found] ` <1470785557-21974-1-git-send-email-zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org> @ 2016-08-09 23:32 ` Chris Zhong 2 siblings, 0 replies; 7+ messages in thread From: Chris Zhong @ 2016-08-09 23:32 UTC (permalink / raw) To: dianders, tfiga, heiko, yzq, groeck, myungjoo.ham, cw00.choi, wulf, marcheu Cc: Mark Rutland, devicetree, Pawel Moll, Ian Campbell, linux-kernel, dri-devel, linux-rockchip, Rob Herring, Kumar Gala, Chris Zhong, linux-arm-kernel This patch adds a binding that describes the cdn DP controller for rk3399. Signed-off-by: Chris Zhong <zyw@rock-chips.com> Acked-by: Rob Herring <robh@kernel.org> --- Changes in v10: - add pclk_vio_grf clock Changes in v9: - modify the reference phy = <&tcphy0 0>, <&tcphy1 0>; Changes in v8: None Changes in v7: None Changes in v6: - add assigned-clocks and assigned-clock-rates - add power-domains Changes in v5: None Changes in v4: - add a reset node - support 2 phys Changes in v3: - add SoC specific compatible string - remove reg = <1>; Changes in v2: None Changes in v1: - add extcon node description - add #sound-dai-cells description .../bindings/display/rockchip/cdn-dp-rockchip.txt | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt diff --git a/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt b/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt new file mode 100644 index 0000000..d0555f7 --- /dev/null +++ b/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt @@ -0,0 +1,74 @@ +Rockchip RK3399 specific extensions to the cdn Display Port +================================ + +Required properties: +- compatible: must be "rockchip,rk3399-cdn-dp" + +- reg: physical base address of the controller and length + +- clocks: from common clock binding: handle to dp clock. + +- clock-names: from common clock binding: + Required elements: "core-clk" "pclk" "spdif" "grf" + +- resets : a list of phandle + reset specifier pairs +- reset-names : string reset name, must be: + "spdif" +- power-domains : power-domain property defined with a phandle + to respective power domain. +- assigned-clocks: main clock, should be <&cru SCLK_DP_CORE> +- assigned-clock-rates : the DP core clk frequency, shall be: 100000000 + +- rockchip,grf: this soc should set GRF regs, so need get grf here. + +- ports: contain a port nodes with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt. + contained 2 endpoints, connecting to the output of vop. + +- phys: from general PHY binding: the phandle for the PHY device. + +- extcon: extcon specifier for the Power Delivery + +- #sound-dai-cells = it must be 1 if your system is using 2 DAIs: I2S, SPDIF + +------------------------------------------------------------------------------- + +Example: + cdn_dp: dp@fec00000 { + compatible = "rockchip,rk3399-cdn-dp"; + reg = <0x0 0xfec00000 0x0 0x100000>; + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>, + <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;; + clock-names = "core-clk", "pclk", "spdif", "grf"; + assigned-clocks = <&cru SCLK_DP_CORE>; + assigned-clock-rates = <100000000>; + power-domains = <&power RK3399_PD_HDCP>; + phys = <&tcphy0 0>, <&tcphy1 0>; + resets = <&cru SRST_DPTX_SPDIF_REC>; + reset-names = "spdif"; + extcon = <&fusb0>, <&fusb1>; + rockchip,grf = <&grf>; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <1>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + dp_in: port { + #address-cells = <1>; + #size-cells = <0>; + dp_in_vopb: endpoint@0 { + reg = <0>; + remote-endpoint = <&vopb_out_dp>; + }; + + dp_in_vopl: endpoint@1 { + reg = <1>; + remote-endpoint = <&vopl_out_dp>; + }; + }; + }; + }; -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-08-10 22:10 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <CGME20160809233518epcas1p3f9f022aa8f96317795c91479d6758a3a@epcas1p3.samsung.com> 2016-08-09 23:32 ` [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver Chris Zhong 2016-08-09 23:32 ` [v10 PATCH 1/5] Documentation: bindings: add dt doc for Rockchip USB Type-C PHY Chris Zhong 2016-08-10 22:10 ` Guenter Roeck [not found] ` <1470785557-21974-1-git-send-email-zyw-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2016-08-09 23:32 ` [v10 PATCH 3/5] arm64: dts: rockchip: add Type-C phy for RK3399 Chris Zhong 2016-08-10 0:37 ` [v10 PATCH 0/5] Rockchip Type-C and DisplayPort driver Chanwoo Choi [not found] ` <57AA772C.1010303-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> 2016-08-10 18:00 ` Chris Zhong 2016-08-09 23:32 ` [v10 PATCH 4/5] Documentation: bindings: add dt documentation for cdn DP controller Chris Zhong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).