Skip to content

Commit a701262

Browse files
committed
Merge tag 'mtd/for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
Pull MTD updates from Miquel Raynal: "MTD core: - Fix refcounting for unpartitioned MTDs - Fix misspelled function parameter 'section' - Remove unneeded break - cmdline parser: Fix parsing of part-names with colons - mtdpart: Fix misdocumented function parameter 'mtd' MTD devices: - phram: - Allow the user to set the erase page size - File headers are not good candidates for kernel-doc - physmap-bt1-rom: Fix __iomem addrspace removal warning - plat-ram: correctly free memory on error path in platram_probe() - powernv_flash: Add function names to headers and fix 'dev' - docg3: Fix kernel-doc 'bad line' and 'excessive doc' issues UBI cleanup fixes: - gluebi: Fix misnamed function parameter documentation - wl: Fix a couple of kernel-doc issues - eba: Fix a couple of misdocumentation issues - kapi: Correct documentation for 'ubi_leb_read_sg's 'sgl' parameter - Document 'ubi_num' in struct mtd_dev_param Generic NAND core ECC management: - Add an I/O request tweaking mechanism - Entire rework of the software BCH ECC driver, creation of a real ECC engine, getting rid of raw NAND structures, migration to more generic prototypes, misc fixes and style cleanup. Moved now to the Generic NAND layer. - Entire rework of the software Hamming ECC driver, creation of a real ECC engine, getting rid of raw NAND structures, misc renames, comment updates, cleanup, and style fixes. Moved now to the generic NAND layer. - Necessary plumbing at the NAND level to retrieve generic NAND ECC engines (softwares and on-die). - Update of the bindings. Raw NAND core: - Geting rid of the chip->ecc.priv entry. - Fix miscellaneous typos in kernel-doc Raw NAND controller drivers: - Arasan: Document 'anfc_op's 'buf' member - AU1550: Ensure the presence of the right includes - Brcmnand: Demote non-conformant kernel-doc headers - Cafe: Remove superfluous param doc and add another - Davinci: Do not use extra dereferencing - Diskonchip: Marking unused variables as __always_unused - GPMI: - Fix the driver only sense CS0 R/B issue - Fix the random DMA timeout issue - Use a single line for of_device_id - Use of_device_get_match_data() - Fix reference count leak in gpmi ops - Cleanup makefile - Fix binding matching of clocks on different SoCs - Ingenic: remove redundant get_device() in ingenic_ecc_get() - Intel LGM: New NAND controller driver - Marvell: Drop useless line - Meson: - Fix a resource leak in init - Fix meson_nfc_dma_buffer_release() arguments - mxc: - Use device_get_match_data() - Use a single line for of_device_id - Remove platform data support - Omap: - Fix a bunch of kernel-doc misdemeanours - Finish ELM half populated function header, demote empty ones - s3c2410: Add documentation for 2 missing struct members - Sunxi: Document 'sunxi_nfc's 'caps' member - Qcom: - Add support for SDX55 - Support for IPQ6018 QPIC NAND controller - Fix DMA sync on FLASH_STATUS register read - Rockchip: New NAND controller driver for RK3308, RK2928 and others - Sunxi: Add MDMA support ONENAND: - bbt: Fix expected kernel-doc formatting - Fix some kernel-doc misdemeanours - Fix expected kernel-doc formatting - Use mtd->oops_panic_write as condition SPI-NAND core: - Creation of a SPI-NAND on-die ECC engine - Move ECC related definitions earlier in the driver - Fix typo in comment - Fill a default ECC provider/algorithm - Remove outdated comment - Fix OOB read - Allow the case where there is no ECC engine - Use the external ECC engine logic SPI-NAND chip drivers: - Micron: - Add support for MT29F2G01AAAED - Use more specific names - Macronix: - Add support for MX35LFxG24AD - Add support for MX35LFxGE4AD - Toshiba: Demote non-conformant kernel-doc header SPI-NOR core: - Initial support for stateful Octal DTR mode using volatile settings - Preliminary support for JEDEC 251 (xSPI) and JEDEC 216D standards - Support for Cypress Semper flash - Support to specify ECC block size of SPI NOR flashes - Fixes to avoid clearing of non-volatile Block Protection bits at probe - hisi-sfc: Demote non-conformant kernel-doc" * tag 'mtd/for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (120 commits) mtd: spinand: macronix: Add support for MX35LFxG24AD mtd: rawnand: rockchip: NFC driver for RK3308, RK2928 and others dt-bindings: mtd: Describe Rockchip RK3xxx NAND flash controller mtd: rawnand: gpmi: Use a single line for of_device_id mtd: rawnand: gpmi: Fix the random DMA timeout issue mtd: rawnand: gpmi: Fix the driver only sense CS0 R/B issue mtd: rawnand: qcom: Add NAND controller support for SDX55 dt-bindings: qcom_nandc: Add SDX55 QPIC NAND documentation mtd: rawnand: mxc: Use a single line for of_device_id mtd: rawnand: mxc: Use device_get_match_data() mtd: rawnand: meson: Fix a resource leak in init mtd: rawnand: gpmi: Use of_device_get_match_data() mtd: rawnand: Add NAND controller support on Intel LGM SoC dt-bindings: mtd: Add Nand Flash Controller support for Intel LGM SoC mtd: spinand: micron: Add support for MT29F2G01AAAED mtd: spinand: micron: Use more specific names mtd: rawnand: gpmi: fix reference count leak in gpmi ops dt-bindings: mtd: gpmi-nand: Fix matching of clocks on different SoCs mtd: spinand: macronix: Add support for MX35LFxGE4AD mtd: plat-ram: correctly free memory on error path in platram_probe() ...
2 parents 945433b + 4c9e94d commit a701262

File tree

111 files changed

+6107
-1500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+6107
-1500
lines changed

Documentation/devicetree/bindings/mtd/gpmi-nand.yaml

Lines changed: 61 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ title: Freescale General-Purpose Media Interface (GPMI) binding
99
maintainers:
1010
- Han Xu <han.xu@nxp.com>
1111

12-
allOf:
13-
- $ref: "nand-controller.yaml"
14-
1512
description: |
1613
The GPMI nand controller provides an interface to control the NAND
1714
flash chips. The device tree may optionally contain sub-nodes
@@ -58,22 +55,10 @@ properties:
5855
clocks:
5956
minItems: 1
6057
maxItems: 5
61-
items:
62-
- description: SoC gpmi io clock
63-
- description: SoC gpmi apb clock
64-
- description: SoC gpmi bch clock
65-
- description: SoC gpmi bch apb clock
66-
- description: SoC per1 bch clock
6758

6859
clock-names:
6960
minItems: 1
7061
maxItems: 5
71-
items:
72-
- const: gpmi_io
73-
- const: gpmi_apb
74-
- const: gpmi_bch
75-
- const: gpmi_bch_apb
76-
- const: per1_bch
7762

7863
fsl,use-minimum-ecc:
7964
type: boolean
@@ -107,6 +92,67 @@ required:
10792

10893
unevaluatedProperties: false
10994

95+
allOf:
96+
- $ref: "nand-controller.yaml"
97+
98+
- if:
99+
properties:
100+
compatible:
101+
contains:
102+
enum:
103+
- fsl,imx23-gpmi-nand
104+
- fsl,imx28-gpmi-nand
105+
then:
106+
properties:
107+
clocks:
108+
items:
109+
- description: SoC gpmi io clock
110+
clock-names:
111+
items:
112+
- const: gpmi_io
113+
114+
- if:
115+
properties:
116+
compatible:
117+
contains:
118+
enum:
119+
- fsl,imx6q-gpmi-nand
120+
- fsl,imx6sx-gpmi-nand
121+
then:
122+
properties:
123+
clocks:
124+
items:
125+
- description: SoC gpmi io clock
126+
- description: SoC gpmi apb clock
127+
- description: SoC gpmi bch clock
128+
- description: SoC gpmi bch apb clock
129+
- description: SoC per1 bch clock
130+
clock-names:
131+
items:
132+
- const: gpmi_io
133+
- const: gpmi_apb
134+
- const: gpmi_bch
135+
- const: gpmi_bch_apb
136+
- const: per1_bch
137+
138+
- if:
139+
properties:
140+
compatible:
141+
contains:
142+
const: fsl,imx7d-gpmi-nand
143+
then:
144+
properties:
145+
clocks:
146+
items:
147+
- description: SoC gpmi io clock
148+
- description: SoC gpmi bch apb clock
149+
clock-names:
150+
minItems: 2
151+
maxItems: 2
152+
items:
153+
- const: gpmi_io
154+
- const: gpmi_bch_apb
155+
110156
examples:
111157
- |
112158
nand-controller@8000c000 {
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mtd/intel,lgm-nand.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Intel LGM SoC NAND Controller Device Tree Bindings
8+
9+
allOf:
10+
- $ref: "nand-controller.yaml"
11+
12+
maintainers:
13+
- Ramuthevar Vadivel Murugan <vadivel.muruganx.ramuthevar@linux.intel.com>
14+
15+
properties:
16+
compatible:
17+
const: intel,lgm-nand
18+
19+
reg:
20+
maxItems: 6
21+
22+
reg-names:
23+
items:
24+
- const: ebunand
25+
- const: hsnand
26+
- const: nand_cs0
27+
- const: nand_cs1
28+
- const: addr_sel0
29+
- const: addr_sel1
30+
31+
clocks:
32+
maxItems: 1
33+
34+
dmas:
35+
maxItems: 2
36+
37+
dma-names:
38+
items:
39+
- const: tx
40+
- const: rx
41+
42+
"#address-cells":
43+
const: 1
44+
45+
"#size-cells":
46+
const: 0
47+
48+
patternProperties:
49+
"^nand@[a-f0-9]+$":
50+
type: object
51+
properties:
52+
reg:
53+
minimum: 0
54+
maximum: 7
55+
56+
nand-ecc-mode: true
57+
58+
nand-ecc-algo:
59+
const: hw
60+
61+
additionalProperties: false
62+
63+
required:
64+
- compatible
65+
- reg
66+
- reg-names
67+
- clocks
68+
- dmas
69+
- dma-names
70+
- "#address-cells"
71+
- "#size-cells"
72+
73+
additionalProperties: false
74+
75+
examples:
76+
- |
77+
nand-controller@e0f00000 {
78+
compatible = "intel,lgm-nand";
79+
reg = <0xe0f00000 0x100>,
80+
<0xe1000000 0x300>,
81+
<0xe1400000 0x8000>,
82+
<0xe1c00000 0x1000>,
83+
<0x17400000 0x4>,
84+
<0x17c00000 0x4>;
85+
reg-names = "ebunand", "hsnand", "nand_cs0", "nand_cs1",
86+
"addr_sel0", "addr_sel1";
87+
clocks = <&cgu0 125>;
88+
dmas = <&dma0 8>, <&dma0 9>;
89+
dma-names = "tx", "rx";
90+
#address-cells = <1>;
91+
#size-cells = <0>;
92+
93+
nand@0 {
94+
reg = <0>;
95+
nand-ecc-mode = "hw";
96+
};
97+
};
98+
99+
...

Documentation/devicetree/bindings/mtd/nand-controller.yaml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,6 @@ patternProperties:
4646
description:
4747
Contains the native Ready/Busy IDs.
4848

49-
nand-ecc-mode:
50-
description:
51-
Desired ECC engine, either hardware (most of the time
52-
embedded in the NAND controller) or software correction
53-
(Linux will handle the calculations). soft_bch is deprecated
54-
and should be replaced by soft and nand-ecc-algo.
55-
$ref: /schemas/types.yaml#/definitions/string
56-
enum: [none, soft, hw, hw_syndrome, hw_oob_first, on-die]
57-
5849
nand-ecc-engine:
5950
allOf:
6051
- $ref: /schemas/types.yaml#/definitions/phandle
@@ -171,7 +162,7 @@ examples:
171162
172163
nand@0 {
173164
reg = <0>;
174-
nand-ecc-mode = "soft";
165+
nand-use-soft-ecc-engine;
175166
nand-ecc-algo = "bch";
176167
177168
/* controller specific properties */

Documentation/devicetree/bindings/mtd/qcom_nandc.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@ Required properties:
66
SoC and it uses ADM DMA
77
* "qcom,ipq4019-nand" - for QPIC NAND controller v1.4.0 being used in
88
IPQ4019 SoC and it uses BAM DMA
9+
* "qcom,ipq6018-nand" - for QPIC NAND controller v1.5.0 being used in
10+
IPQ6018 SoC and it uses BAM DMA
911
* "qcom,ipq8074-nand" - for QPIC NAND controller v1.5.0 being used in
1012
IPQ8074 SoC and it uses BAM DMA
13+
* "qcom,sdx55-nand" - for QPIC NAND controller v2.0.0 being used in
14+
SDX55 SoC and it uses BAM DMA
1115

1216
- reg: MMIO address range
1317
- clocks: must contain core clock and always on clock

0 commit comments

Comments
 (0)