Message ID | 20230322150458.783901-1-mmkurbanov@sberdevices.ru |
---|---|
Headers | show |
Series | add support for Meson A1 SPI Flash Controller | expand |
Hi, On 22/03/2023 16:04, Martin Kurbanov wrote: > This is a driver for the Amlogic Meson SPI flash controller support > on A113L SoC. > > Signed-off-by: Martin Kurbanov <mmkurbanov@sberdevices.ru> > --- > drivers/spi/Kconfig | 7 + > drivers/spi/Makefile | 1 + > drivers/spi/spi-meson-spifc-a1.c | 444 +++++++++++++++++++++++++++++++ > 3 files changed, 452 insertions(+) > create mode 100644 drivers/spi/spi-meson-spifc-a1.c > > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig > index 3b1c0878bb85..a12452bd1e0c 100644 > --- a/drivers/spi/Kconfig > +++ b/drivers/spi/Kconfig > @@ -582,6 +582,13 @@ config SPI_MESON_SPIFC > This enables master mode support for the SPIFC (SPI flash > controller) available in Amlogic Meson SoCs. > > +config SPI_MESON_SPIFC_A1 > + tristate "Amlogic Meson A113L SPIFC controller" The title should be "Amlogic Meson A1 SPIFC controller" for coherency. > + depends on ARCH_MESON || COMPILE_TEST > + help > + This enables master mode support for the SPIFC (SPI flash > + controller) available in Amlogic Meson A113L (A1 family) SoC. You should write the reverse: available in Amlogic Meson A1 Family (A113L SoC). > + > config SPI_MICROCHIP_CORE > tristate "Microchip FPGA SPI controllers" > depends on SPI_MASTER > diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile > index be9ba40ef8d0..702053970967 100644 > --- a/drivers/spi/Makefile > +++ b/drivers/spi/Makefile > @@ -72,6 +72,7 @@ obj-$(CONFIG_SPI_LM70_LLP) += spi-lm70llp.o > obj-$(CONFIG_SPI_LP8841_RTC) += spi-lp8841-rtc.o > obj-$(CONFIG_SPI_MESON_SPICC) += spi-meson-spicc.o > obj-$(CONFIG_SPI_MESON_SPIFC) += spi-meson-spifc.o > +obj-$(CONFIG_SPI_MESON_SPIFC_A1) += spi-meson-spifc-a1.o > obj-$(CONFIG_SPI_MICROCHIP_CORE) += spi-microchip-core.o > obj-$(CONFIG_SPI_MICROCHIP_CORE_QSPI) += spi-microchip-core-qspi.o > obj-$(CONFIG_SPI_MPC512x_PSC) += spi-mpc512x-psc.o > diff --git a/drivers/spi/spi-meson-spifc-a1.c b/drivers/spi/spi-meson-spifc-a1.c > new file mode 100644 > index 000000000000..213c8b692675 > --- /dev/null > +++ b/drivers/spi/spi-meson-spifc-a1.c > @@ -0,0 +1,444 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Driver for Amlogic Meson A113L SPI flash controller (SPIFC) Same here > + * > + * Copyright (c) 2023, SberDevices. All Rights Reserved. > + * > + * Author: Martin Kurbanov <mmkurbanov@sberdevices.ru> > + */ > + > +#include <linux/clk.h> > +#include <linux/device.h> > +#include <linux/io.h> > +#include <linux/iopoll.h> > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/of.h> > +#include <linux/platform_device.h> > +#include <linux/pm_runtime.h> > +#include <linux/spi/spi.h> > +#include <linux/spi/spi-mem.h> > +#include <linux/types.h> > + > +#define A1_SPIFC_AHB_CTRL_REG 0x0 > +#define A1_SPIFC_AHB_BUS_EN BIT(31) I find the "A1_SPIFC" hard to read, I think you should reverse it in all the file into : #define SPIFC_A1_... and static XXX meson_spifc_a1_request to be coherent with the legacy spifc driver and spicc driver. <snip> > + > +MODULE_AUTHOR("Martin Kurbanov <mmkurbanov@sberdevices.ru>"); > +MODULE_DESCRIPTION("Amlogic Meson A113L SPIFC driver"); Same here "Meson A1 SPIFC driver" > +MODULE_LICENSE("GPL"); Thanks, Neil
On Wed, 22 Mar 2023 18:04:57 +0300, Martin Kurbanov wrote: > Add YAML devicetree binding for Amlogic Meson A113L (A1 family) > SPIFC Driver. > > Signed-off-by: Martin Kurbanov <mmkurbanov@sberdevices.ru> > --- > .../bindings/spi/amlogic,meson-a1-spifc.yaml | 42 +++++++++++++++++++ > 1 file changed, 42 insertions(+) > create mode 100644 Documentation/devicetree/bindings/spi/amlogic,meson-a1-spifc.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/spi/amlogic,meson-a1-spifc.example.dts:18:18: fatal error: dt-bindings/clock/amlogic,a1-clkc.h: No such file or directory 18 | #include <dt-bindings/clock/amlogic,a1-clkc.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/spi/amlogic,meson-a1-spifc.example.dtb] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:1512: dt_binding_check] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230322150458.783901-2-mmkurbanov@sberdevices.ru The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.