Commit 1546cd4b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ata updates from Damien Le Moal:

 - Add support for the .remove_new callback to the ata_platform code to
   simplify device removal interface (Uwe)

 - Code simplification in ata_dev_revalidate() (Yahu)

 - Fix code indentation and coding style in the pata_parport protocol
   modules to avoid warnings from static code analyzers (me)

 - Clarify ata_eh_qc_retry() behavior with better comments (Niklas)

 - Simplify and improve ata_change_queue_depth() behavior to have a
   consistent behavior between libsas managed devices and libata managed
   devices (e.g. AHCI connected devices) (me)

 - Cleanup libata-scsi and libata-eh code to use the ata_ncq_enabled()
   and ata_ncq_supported() helpers instead of open coding flags tests
   (me)

 - Cleanup ahci_reset_controller() code (me)

 - Change the pata_octeon_cf and sata_svw drivers to use
   of_property_read_reg() to simplify the code (Rob, me)

 - Remove unnecessary include files from ahci_octeon driver (me)

 - Modify the DesignWare ahci dt bindings to add support for the
   Rockchip RK3588 AHCI (Sebastian)

* tag 'ata-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata: (29 commits)
  dt-bindings: phy: rockchip: rk3588 has two reset lines
  dt-bindings: ata: dwc-ahci: add Rockchip RK3588
  dt-bindings: ata: dwc-ahci: add PHY clocks
  ata: ahci_octeon: Remove unnecessary include
  ata: pata_octeon_cf: Add missing header include
  ata: ahci: Cleanup ahci_reset_controller()
  ata: Use of_property_read_reg() to parse "reg"
  ata: libata-scsi: Use ata_ncq_supported in ata_scsi_dev_config()
  ata: libata-eh: Use ata_ncq_enabled() in ata_eh_speed_down()
  ata: libata-sata: Improve ata_change_queue_depth()
  ata: libata-sata: Simplify ata_change_queue_depth()
  ata: libata-eh: Clarify ata_eh_qc_retry() behavior at call site
  ata: pata_parport: Fix on26 module code indentation and style
  ata: pata_parport: Fix on20 module code indentation and style
  ata: pata_parport: Fix ktti module code indentation and style
  ata: pata_parport: Fix kbic module code indentation and style
  ata: pata_parport: Fix friq module code indentation and style
  ata: pata_parport: Fix fit3 module code indentation and style
  ata: pata_parport: Fix fit2 module code indentation and style
  ata: pata_parport: Fix epia module code indentation and style
  ...
parents b30d7a77 fd3ac6e8
Loading
Loading
Loading
Loading
+124 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/ata/rockchip,dwc-ahci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synopsys DWC AHCI SATA controller for Rockchip devices

maintainers:
  - Serge Semin <fancer.lancer@gmail.com>

description:
  This document defines device tree bindings for the Synopsys DWC
  implementation of the AHCI SATA controller found in Rockchip
  devices.

select:
  properties:
    compatible:
      contains:
        enum:
          - rockchip,rk3568-dwc-ahci
          - rockchip,rk3588-dwc-ahci
  required:
    - compatible

properties:
  compatible:
    items:
      - enum:
          - rockchip,rk3568-dwc-ahci
          - rockchip,rk3588-dwc-ahci
      - const: snps,dwc-ahci

  ports-implemented:
    const: 1

  sata-port@0:
    $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port

    properties:
      reg:
        const: 0

    unevaluatedProperties: false

patternProperties:
  "^sata-port@[1-9a-e]$": false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - ports-implemented

allOf:
  - $ref: snps,dwc-ahci-common.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - rockchip,rk3588-dwc-ahci
    then:
      properties:
        clocks:
          maxItems: 5
        clock-names:
          items:
            - const: sata
            - const: pmalive
            - const: rxoob
            - const: ref
            - const: asic
  - if:
      properties:
        compatible:
          contains:
            enum:
              - rockchip,rk3568-dwc-ahci
    then:
      properties:
        clocks:
          maxItems: 3
        clock-names:
          items:
            - const: sata
            - const: pmalive
            - const: rxoob

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/ata/ahci.h>
    #include <dt-bindings/phy/phy.h>

    sata@fe210000 {
      compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
      reg = <0xfe210000 0x1000>;
      clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
               <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>,
               <&cru CLK_PIPEPHY0_PIPE_ASIC_G>;
      clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
      interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 0>;
      ports-implemented = <0x1>;
      #address-cells = <1>;
      #size-cells = <0>;

      sata-port@0 {
        reg = <0>;
        hba-port-cap = <HBA_PORT_FBSCP>;
        phys = <&combphy0_ps PHY_TYPE_SATA>;
        phy-names = "sata-phy";
        snps,rx-ts-max = <32>;
        snps,tx-ts-max = <32>;
      };
    };

...
+6 −2
Original line number Diff line number Diff line
@@ -31,11 +31,11 @@ properties:
      PM-alive clock, RxOOB detection clock, embedded PHYs reference (Rx/Tx)
      clock, etc.
    minItems: 1
    maxItems: 4
    maxItems: 6

  clock-names:
    minItems: 1
    maxItems: 4
    maxItems: 6
    items:
      oneOf:
        - description: Application APB/AHB/AXI BIU clock
@@ -48,6 +48,10 @@ properties:
          const: pmalive
        - description: RxOOB detection clock
          const: rxoob
        - description: PHY Transmit Clock
          const: asic
        - description: PHY Receive Clock
          const: rbc
        - description: SATA Ports reference clock
          const: ref

+9 −4
Original line number Diff line number Diff line
@@ -13,6 +13,15 @@ description:
  This document defines device tree bindings for the generic Synopsys DWC
  implementation of the AHCI SATA controller.

select:
  properties:
    compatible:
      enum:
        - snps,dwc-ahci
        - snps,spear-ahci
  required:
    - compatible

allOf:
  - $ref: snps,dwc-ahci-common.yaml#

@@ -23,10 +32,6 @@ properties:
        const: snps,dwc-ahci
      - description: SPEAr1340 AHCI SATA device
        const: snps,spear-ahci
      - description: Rockhip RK3568 AHCI controller
        items:
          - const: rockchip,rk3568-dwc-ahci
          - const: snps,dwc-ahci

patternProperties:
  "^sata-port@[0-9a-e]$":
+33 −1
Original line number Diff line number Diff line
@@ -31,8 +31,14 @@ properties:
      - const: pipe

  resets:
    minItems: 1
    maxItems: 2

  reset-names:
    minItems: 1
    items:
      - description: exclusive PHY reset line
      - const: phy
      - const: apb

  rockchip,enable-ssc:
    type: boolean
@@ -78,6 +84,32 @@ required:
  - rockchip,pipe-phy-grf
  - "#phy-cells"

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3568-naneng-combphy
    then:
      properties:
        resets:
          maxItems: 1
        reset-names:
          maxItems: 1
  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3588-naneng-combphy
    then:
      properties:
        resets:
          minItems: 2
        reset-names:
          minItems: 2
      required:
        - reset-names

additionalProperties: false

examples:
+3 −3
Original line number Diff line number Diff line
@@ -544,7 +544,7 @@ static int brcm_ahci_probe(struct platform_device *pdev)
	return ret;
}

static int brcm_ahci_remove(struct platform_device *pdev)
static void brcm_ahci_remove(struct platform_device *pdev)
{
	struct ata_host *host = dev_get_drvdata(&pdev->dev);
	struct ahci_host_priv *hpriv = host->private_data;
@@ -552,7 +552,7 @@ static int brcm_ahci_remove(struct platform_device *pdev)

	brcm_sata_phys_disable(priv);

	return ata_platform_remove_one(pdev);
	ata_platform_remove_one(pdev);
}

static void brcm_ahci_shutdown(struct platform_device *pdev)
@@ -573,7 +573,7 @@ static SIMPLE_DEV_PM_OPS(ahci_brcm_pm_ops, brcm_ahci_suspend, brcm_ahci_resume);

static struct platform_driver brcm_ahci_driver = {
	.probe = brcm_ahci_probe,
	.remove = brcm_ahci_remove,
	.remove_new = brcm_ahci_remove,
	.shutdown = brcm_ahci_shutdown,
	.driver = {
		.name = DRV_NAME,
Loading