Message ID | 20231218-mbly-reset-v1-1-b4688b916213@bootlin.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | Add support for Mobileye EyeQ5 reset controller | expand |
On Mon, 18 Dec 2023 18:16:12 +0100, Théo Lebrun wrote: > Add DT-Schema bindings for the EyeQ5 reset controller. > > Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> > --- > .../bindings/reset/mobileye,eyeq5-reset.yaml | 69 +++++++++++++++++++ > MAINTAINERS | 2 + > include/dt-bindings/reset/mobileye,eyeq5-reset.h | 80 ++++++++++++++++++++++ > 3 files changed, 151 insertions(+) > 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/reset/mobileye,eyeq5-reset.example.dtb: /example-0/olb@e00000: failed to match any schema with compatible: ['mobileye,eyeq5-olb', 'syscon', 'simple-mfd'] Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.example.dtb: /example-1/olb@e00000: failed to match any schema with compatible: ['mobileye,eyeq5-olb', 'syscon', 'simple-mfd'] /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.example.dtb: reset-controller: 'mobileye,olb' does not match any of the regexes: '^#.*', '^(at25|bm|devbus|dmacap|dsa|exynos|fsi[ab]|gpio-fan|gpio-key|gpio|gpmc|hdmi|i2c-gpio),.*', '^(keypad|m25p|max8952|max8997|max8998|mpmc),.*', '^(pinctrl-single|#pinctrl-single|PowerPC),.*', '^(pl022|pxa-mmc|rcar_sound|rotary-encoder|s5m8767|sdhci),.*', '^(simple-audio-card|st-plgpio|st-spics|ts),.*', '^100ask,.*', '^70mai,.*', '^8dev,.*', '^GEFanuc,.*', '^ORCL,.*', '^SUNW,.*', '^[a-zA-Z0-9#_][a-zA-Z0-9+\\-._@]{0,63}$', '^[a-zA-Z0-9+\\-._]*@[0-9a-zA-Z,]*$', '^abb,.*', '^abilis,.*', '^abracon,.*', '^abt,.*', '^acbel,.*', '^acer,.*', '^acme,.*', '^actions,.*', '^active-semi,.*', '^ad,.*', '^adafruit,.*', '^adapteva,.*', '^adaptrum,.*', '^adh,.*', '^adi,.*', '^adieng,.*', '^advantech,.*', '^aeroflexgaisler,.*', '^aesop,.*', '^airoha,.*', '^al,.*', '^alcatel,.*', '^aldec,.*', '^alfa-network,.*', '^allegr o,.*', '^allo,.*', '^allwinner,.*', '^alphascale,.*', '^alps,.*', '^alt,.*', '^altr,.*', '^amarula,.*', '^amazon,.*', '^amcc,.*', '^amd,.*', '^amediatech,.*', '^amlogic,.*', '^ampere,.*', '^ampire,.*', '^ams,.*', '^amstaos,.*', '^analogix,.*', '^anbernic,.*', '^andestech,.*', '^anvo,.*', '^apm,.*', '^apple,.*', '^aptina,.*', '^arasan,.*', '^archermind,.*', '^arcom,.*', '^arctic,.*', '^arcx,.*', '^aries,.*', '^arm,.*', '^armadeus,.*', '^arrow,.*', '^artesyn,.*', '^asahi-kasei,.*', '^asc,.*', '^asix,.*', '^aspeed,.*', '^asrock,.*', '^asus,.*', '^atheros,.*', '^atlas,.*', '^atmel,.*', '^auo,.*', '^auvidea,.*', '^avago,.*', '^avia,.*', '^avic,.*', '^avnet,.*', '^awinic,.*', '^axentia,.*', '^axis,.*', '^azoteq,.*', '^azw,.*', '^baikal,.*', '^bananapi,.*', '^beacon,.*', '^beagle,.*', '^belling,.*', '^bhf,.*', '^bigtreetech,.*', '^bitmain,.*', '^blutek,.*', '^boe,.*', '^bosch,.*', '^boundary,.*', '^brcm,.*', '^broadmobi,.*', '^bsh,.*', '^bticino,.*', '^buffalo,.*', '^bur,.*', '^bytedance,. *', '^calamp,.*', '^calaosystems,.*', '^calxeda,.*', '^canaan,.*', '^caninos,.*', '^capella,.*', '^cascoda,.*', '^catalyst,.*', '^cavium,.*', '^cdns,.*', '^cdtech,.*', '^cellwise,.*', '^ceva,.*', '^chargebyte,.*', '^checkpoint,.*', '^chefree,.*', '^chipidea,.*', '^chipone,.*', '^chipspark,.*', '^chongzhou,.*', '^chrontel,.*', '^chrp,.*', '^chunghwa,.*', '^chuwi,.*', '^ciaa,.*', '^cirrus,.*', '^cisco,.*', '^clockwork,.*', '^cloos,.*', '^cloudengines,.*', '^cnm,.*', '^cnxt,.*', '^colorfly,.*', '^compulab,.*', '^congatec,.*', '^coreriver,.*', '^corpro,.*', '^cortina,.*', '^cosmic,.*', '^crane,.*', '^creative,.*', '^crystalfontz,.*', '^csky,.*', '^csq,.*', '^ctera,.*', '^ctu,.*', '^cubietech,.*', '^cui,.*', '^cypress,.*', '^cyx,.*', '^cznic,.*', '^dallas,.*', '^dataimage,.*', '^davicom,.*', '^dell,.*', '^delta,.*', '^densitron,.*', '^denx,.*', '^devantech,.*', '^dfi,.*', '^dh,.*', '^difrnce,.*', '^digi,.*', '^digilent,.*', '^diodes,.*', '^dioo,.*', '^dlc,.*', '^dlg,.*', '^dlink,.*', '^d mo,.*', '^domintech,.*', '^dongwoon,.*', '^dptechnics,.*', '^dragino,.*', '^ds,.*', '^dserve,.*', '^dynaimage,.*', '^ea,.*', '^ebang,.*', '^ebbg,.*', '^ebs-systart,.*', '^ebv,.*', '^eckelmann,.*', '^edgeble,.*', '^edimax,.*', '^edt,.*', '^ees,.*', '^eeti,.*', '^einfochips,.*', '^eink,.*', '^elan,.*', '^element14,.*', '^elgin,.*', '^elida,.*', '^elimo,.*', '^elpida,.*', '^embedfire,.*', '^embest,.*', '^emlid,.*', '^emmicro,.*', '^empire-electronix,.*', '^emtrion,.*', '^enclustra,.*', '^endless,.*', '^ene,.*', '^energymicro,.*', '^engicam,.*', '^engleder,.*', '^epcos,.*', '^epfl,.*', '^epson,.*', '^esp,.*', '^est,.*', '^ettus,.*', '^eukrea,.*', '^everest,.*', '^everspin,.*', '^evervision,.*', '^exar,.*', '^excito,.*', '^exegin,.*', '^ezchip,.*', '^facebook,.*', '^fairphone,.*', '^faraday,.*', '^fastrax,.*', '^fcs,.*', '^feixin,.*', '^feiyang,.*', '^fii,.*', '^firefly,.*', '^focaltech,.*', '^forlinx,.*', '^freecom,.*', '^frida,.*', '^friendlyarm,.*', '^fsl,.*', '^fujitsu,.*', '^fxtec,. *', '^gardena,.*', '^gateway,.*', '^gateworks,.*', '^gcw,.*', '^ge,.*', '^geekbuying,.*', '^gef,.*', '^gemei,.*', '^gemtek,.*', '^genesys,.*', '^geniatech,.*', '^giantec,.*', '^giantplus,.*', '^globalscale,.*', '^globaltop,.*', '^gmt,.*', '^goldelico,.*', '^goodix,.*', '^google,.*', '^goramo,.*', '^gplus,.*', '^grinn,.*', '^grmn,.*', '^gumstix,.*', '^gw,.*', '^hannstar,.*', '^haochuangyi,.*', '^haoyu,.*', '^hardkernel,.*', '^hechuang,.*', '^hideep,.*', '^himax,.*', '^hirschmann,.*', '^hisi,.*', '^hisilicon,.*', '^hit,.*', '^hitex,.*', '^holt,.*', '^holtek,.*', '^honestar,.*', '^honeywell,.*', '^hoperun,.*', '^hp,.*', '^hpe,.*', '^hsg,.*', '^huawei,.*', '^hugsun,.*', '^hwacom,.*', '^hxt,.*', '^hycon,.*', '^hydis,.*', '^hynitron,.*', '^hynix,.*', '^hyundai,.*', '^i2se,.*', '^ibm,.*', '^icplus,.*', '^idt,.*', '^ifi,.*', '^ilitek,.*', '^imagis,.*', '^img,.*', '^imi,.*', '^inanbo,.*', '^incircuit,.*', '^indiedroid,.*', '^inet-tek,.*', '^infineon,.*', '^inforce,.*', '^ingenic,.*', '^ingra sys,.*', '^injoinic,.*', '^innocomm,.*', '^innolux,.*', '^inside-secure,.*', '^insignal,.*', '^inspur,.*', '^intel,.*', '^intercontrol,.*', '^invensense,.*', '^inventec,.*', '^inversepath,.*', '^iom,.*', '^irondevice,.*', '^isee,.*', '^isil,.*', '^issi,.*', '^ite,.*', '^itead,.*', '^itian,.*', '^ivo,.*', '^iwave,.*', '^jadard,.*', '^jasonic,.*', '^jdi,.*', '^jedec,.*', '^jesurun,.*', '^jethome,.*', '^jianda,.*', '^joz,.*', '^kam,.*', '^karo,.*', '^keithkoep,.*', '^keymile,.*', '^khadas,.*', '^kiebackpeter,.*', '^kinetic,.*', '^kingdisplay,.*', '^kingnovel,.*', '^kionix,.*', '^kobo,.*', '^kobol,.*', '^koe,.*', '^kontron,.*', '^kosagi,.*', '^kvg,.*', '^kyo,.*', '^lacie,.*', '^laird,.*', '^lamobo,.*', '^lantiq,.*', '^lattice,.*', '^lctech,.*', '^leadtek,.*', '^leez,.*', '^lego,.*', '^lemaker,.*', '^lenovo,.*', '^lg,.*', '^lgphilips,.*', '^libretech,.*', '^licheepi,.*', '^linaro,.*', '^lineartechnology,.*', '^linksprite,.*', '^linksys,.*', '^linutronix,.*', '^linux,.*', '^linx,.*', '^li teon,.*', '^litex,.*', '^lltc,.*', '^logicpd,.*', '^logictechno,.*', '^longcheer,.*', '^lontium,.*', '^loongmasses,.*', '^loongson,.*', '^lsi,.*', '^lunzn,.*', '^lwn,.*', '^lxa,.*', '^m5stack,.*', '^macnica,.*', '^mantix,.*', '^mapleboard,.*', '^marantec,.*', '^marvell,.*', '^maxbotix,.*', '^maxim,.*', '^maxlinear,.*', '^mbvl,.*', '^mcube,.*', '^meas,.*', '^mecer,.*', '^mediatek,.*', '^megachips,.*', '^mele,.*', '^melexis,.*', '^melfas,.*', '^mellanox,.*', '^memsensing,.*', '^memsic,.*', '^menlo,.*', '^mentor,.*', '^meraki,.*', '^merrii,.*', '^methode,.*', '^micrel,.*', '^microchip,.*', '^microcrystal,.*', '^micron,.*', '^microsoft,.*', '^microsys,.*', '^mikroe,.*', '^mikrotik,.*', '^milkv,.*', '^miniand,.*', '^minix,.*', '^miramems,.*', '^mitsubishi,.*', '^mitsumi,.*', '^mixel,.*', '^miyoo,.*', '^mntre,.*', '^modtronix,.*', '^moortec,.*', '^mosaixtech,.*', '^motorcomm,.*', '^motorola,.*', '^moxa,.*', '^mpl,.*', '^mps,.*', '^mqmaker,.*', '^mrvl,.*', '^mscc,.*', '^msi,.*', '^mstar,.* ', '^mti,.*', '^multi-inno,.*', '^mundoreader,.*', '^murata,.*', '^mxic,.*', '^mxicy,.*', '^myir,.*', '^national,.*', '^nec,.*', '^neonode,.*', '^netgear,.*', '^netlogic,.*', '^netron-dy,.*', '^netronix,.*', '^netxeon,.*', '^neweast,.*', '^newhaven,.*', '^newvision,.*', '^nexbox,.*', '^nextthing,.*', '^ni,.*', '^nintendo,.*', '^nlt,.*', '^nokia,.*', '^nordic,.*', '^novatek,.*', '^novtech,.*', '^nutsboard,.*', '^nuvoton,.*', '^nvd,.*', '^nvidia,.*', '^nxp,.*', '^oceanic,.*', '^ocs,.*', '^oct,.*', '^okaya,.*', '^oki,.*', '^olimex,.*', '^olpc,.*', '^oneplus,.*', '^onie,.*', '^onion,.*', '^onnn,.*', '^ontat,.*', '^opalkelly,.*', '^openailab,.*', '^opencores,.*', '^openembed,.*', '^openpandora,.*', '^openrisc,.*', '^option,.*', '^oranth,.*', '^orisetech,.*', '^ortustech,.*', '^osddisplays,.*', '^osmc,.*', '^ouya,.*', '^overkiz,.*', '^ovti,.*', '^oxsemi,.*', '^ozzmaker,.*', '^panasonic,.*', '^parade,.*', '^parallax,.*', '^pda,.*', '^pericom,.*', '^pervasive,.*', '^phicomm,.*', '^phytec,.* ', '^picochip,.*', '^pine64,.*', '^pineriver,.*', '^pixcir,.*', '^plantower,.*', '^plathome,.*', '^plda,.*', '^plx,.*', '^ply,.*', '^pni,.*', '^pocketbook,.*', '^polaroid,.*', '^polyhex,.*', '^portwell,.*', '^poslab,.*', '^pov,.*', '^powertip,.*', '^powervr,.*', '^powkiddy,.*', '^primux,.*', '^probox2,.*', '^prt,.*', '^pulsedlight,.*', '^purism,.*', '^qca,.*', '^qcom,.*', '^qemu,.*', '^qi,.*', '^qiaodian,.*', '^qihua,.*', '^qishenglong,.*', '^qnap,.*', '^quanta,.*', '^radxa,.*', '^raidsonic,.*', '^ralink,.*', '^ramtron,.*', '^raspberrypi,.*', '^raydium,.*', '^rda,.*', '^realtek,.*', '^remarkable,.*', '^renesas,.*', '^rervision,.*', '^revotics,.*', '^rex,.*', '^richtek,.*', '^ricoh,.*', '^rikomagic,.*', '^riot,.*', '^riscv,.*', '^rockchip,.*', '^rocktech,.*', '^rohm,.*', '^ronbo,.*', '^roofull,.*', '^roseapplepi,.*', '^saef,.*', '^samsung,.*', '^samtec,.*', '^sancloud,.*', '^sandisk,.*', '^satoz,.*', '^sbs,.*', '^schindler,.*', '^seagate,.*', '^seeed,.*', '^seirobotics,.*', '^semtech ,.*', '^senseair,.*', '^sensirion,.*', '^sensortek,.*', '^sercomm,.*', '^sff,.*', '^sgd,.*', '^sgmicro,.*', '^sgx,.*', '^sharp,.*', '^shift,.*', '^shimafuji,.*', '^shineworld,.*', '^shiratech,.*', '^si-en,.*', '^si-linux,.*', '^siemens,.*', '^sifive,.*', '^sigma,.*', '^sii,.*', '^sil,.*', '^silabs,.*', '^silan,.*', '^silead,.*', '^silergy,.*', '^silex-insight,.*', '^siliconfile,.*', '^siliconmitus,.*', '^silvaco,.*', '^simtek,.*', '^sinlinx,.*', '^sinovoip,.*', '^sinowealth,.*', '^sipeed,.*', '^sirf,.*', '^sis,.*', '^sitronix,.*', '^skov,.*', '^skyworks,.*', '^smartlabs,.*', '^smsc,.*', '^snps,.*', '^sochip,.*', '^socionext,.*', '^solidrun,.*', '^solomon,.*', '^sony,.*', '^sophgo,.*', '^sourceparts,.*', '^spansion,.*', '^sparkfun,.*', '^spinalhdl,.*', '^sprd,.*', '^square,.*', '^ssi,.*', '^sst,.*', '^sstar,.*', '^st,.*', '^st-ericsson,.*', '^starfive,.*', '^starry,.*', '^startek,.*', '^starterkit,.*', '^ste,.*', '^stericsson,.*', '^storlink,.*', '^storm,.*', '^storopack,.*', '^summi t,.*', '^sunchip,.*', '^sundance,.*', '^sunplus,.*', '^supermicro,.*', '^swir,.*', '^syna,.*', '^synology,.*', '^synopsys,.*', '^tbs,.*', '^tbs-biometrics,.*', '^tcg,.*', '^tcl,.*', '^tcs,.*', '^tdo,.*', '^team-source-display,.*', '^technexion,.*', '^technologic,.*', '^techstar,.*', '^teejet,.*', '^teltonika,.*', '^tempo,.*', '^terasic,.*', '^tesla,.*', '^tfc,.*', '^thead,.*', '^thine,.*', '^thingyjp,.*', '^thundercomm,.*', '^thwc,.*', '^ti,.*', '^tianma,.*', '^tlm,.*', '^tmt,.*', '^topeet,.*', '^topic,.*', '^toppoly,.*', '^topwise,.*', '^toradex,.*', '^toshiba,.*', '^toumaz,.*', '^tpk,.*', '^tplink,.*', '^tpo,.*', '^tq,.*', '^traverse,.*', '^tronfy,.*', '^tronsmart,.*', '^truly,.*', '^tsd,.*', '^turing,.*', '^tyan,.*', '^u-blox,.*', '^u-boot,.*', '^ubnt,.*', '^ucrobotics,.*', '^udoo,.*', '^ufispace,.*', '^ugoos,.*', '^uniwest,.*', '^upisemi,.*', '^urt,.*', '^usi,.*', '^usr,.*', '^utoo,.*', '^v3,.*', '^vaisala,.*', '^vamrs,.*', '^variscite,.*', '^vdl,.*', '^vertexcom,.*', '^via,.*', '^vialab,.*', '^vicor,.*', '^videostrong,.*', '^virtio,.*', '^virtual,.*', '^vishay,.*', '^visionox,.*', '^vitesse,.*', '^vivante,.*', '^vivax,.*', '^vocore,.*', '^voipac,.*', '^vot,.*', '^vxt,.*', '^wanchanglong,.*', '^wand,.*', '^waveshare,.*', '^wd,.*', '^we,.*', '^welltech,.*', '^wetek,.*', '^wexler,.*', '^whwave,.*', '^wi2wi,.*', '^widora,.*', '^wiligear,.*', '^willsemi,.*', '^winbond,.*', '^wingtech,.*', '^winlink,.*', '^winstar,.*', '^wirelesstag,.*', '^wits,.*', '^wlf,.*', '^wm,.*', '^wobo,.*', '^x-powers,.*', '^xen,.*', '^xes,.*', '^xiaomi,.*', '^xillybus,.*', '^xingbangda,.*', '^xinpeng,.*', '^xiphera,.*', '^xlnx,.*', '^xnano,.*', '^xunlong,.*', '^xylon,.*', '^yadro,.*', '^yamaha,.*', '^yes-optoelectronics,.*', '^yic,.*', '^yiming,.*', '^ylm,.*', '^yna,.*', '^yones-toptech,.*', '^ys,.*', '^ysoft,.*', '^zarlink,.*', '^zealz,.*', '^zeitec,.*', '^zidoo,.*', '^zii,.*', '^zinitix,.*', '^zkmagic,.*', '^zte,.*', '^zyxel,.*', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/vendor-prefixes.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20231218-mbly-reset-v1-1-b4688b916213@bootlin.com 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.
On 18/12/2023 18:16, Théo Lebrun wrote: > Add DT-Schema bindings for the EyeQ5 reset controller. > > Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> > --- > .../bindings/reset/mobileye,eyeq5-reset.yaml | 69 +++++++++++++++++++ > MAINTAINERS | 2 + > include/dt-bindings/reset/mobileye,eyeq5-reset.h | 80 ++++++++++++++++++++++ > 3 files changed, 151 insertions(+) > > diff --git a/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml b/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml > new file mode 100644 > index 000000000000..cab6a75ba59d > --- /dev/null > +++ b/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml > @@ -0,0 +1,69 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/reset/mobileye,eyeq5-reset.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mobileye EyeQ5 reset controller > + > +description: > + The EyeQ5 reset driver handles three reset domains. It is custom to this > + platform, its registers live in a shared region called OLB. > + > +maintainers: > + - Grégory Clement <gregory.clement@bootlin.com> > + - Théo Lebrun <theo.lebrun@bootlin.com> > + - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com> > + > +properties: > + $nodename: > + pattern: "^reset-controller$" > + description: > + We have no unique address, we rely on OLB. NAK, third time. > + > + compatible: > + const: mobileye,eyeq5-reset > + > + "#reset-cells": > + const: 2 > + description: > + The first cell is the domain (0 to 2 inclusive) and the second one is the > + reset index inside that domain. > + > + mobileye,olb: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + A phandle to the OLB syscon. This is a fallback to using the parent as > + syscon node. No, the same rationale as before. > + > +required: > + - compatible > + - "#reset-cells" > + > +additionalProperties: false > + > +examples: > + - | > + olb@e00000 { > + compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd"; No, the same rationale as before. > + reg = <0xe00000 0x400>; > + reg-io-width = <4>; > + > + reset-controller { > + compatible = "mobileye,eyeq5-reset"; > + #reset-cells = <2>; > + }; > + }; > + > + - | > + olb: olb@e00000 { > + compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd"; No, the same rationale as before. The hardware is either A or B, not both. > + reg = <0xe00000 0x400>; > + reg-io-width = <4>; > + }; > + > + reset-controller { > + compatible = "mobileye,eyeq5-reset"; > + #reset-cells = <2>; > + mobileye,olb = <&olb>; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 4a7bd6b40d74..9096a940b425 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -14553,9 +14553,11 @@ M: Théo Lebrun <theo.lebrun@bootlin.com> > L: linux-mips@vger.kernel.org > S: Maintained > F: Documentation/devicetree/bindings/mips/mobileye.yaml > +F: Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml > F: arch/mips/boot/dts/mobileye/ > F: arch/mips/configs/generic/board-eyeq5.config > F: arch/mips/generic/board-epm5.its.S > +F: include/dt-bindings/reset/mobileye,eyeq5-reset.h > F: include/dt-bindings/soc/mobileye,eyeq5.h > > MODULE SUPPORT > diff --git a/include/dt-bindings/reset/mobileye,eyeq5-reset.h b/include/dt-bindings/reset/mobileye,eyeq5-reset.h > new file mode 100644 > index 000000000000..ce59fe5409ac > --- /dev/null > +++ b/include/dt-bindings/reset/mobileye,eyeq5-reset.h > @@ -0,0 +1,80 @@ > +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ > +/* > + * Copyright (C) 2023 Mobileye Vision Technologies Ltd. > + */ > + > +#ifndef _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H > +#define _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H > + > +/* Domain 0 */ > + > +/* 0..2 are reserved */ No, they are not. IDs cannot be reserved. IDs start from 0 and are incremented by 1. Reserving an ID contradicts to entire point of that ID, so either drop entire file or make this proper IDs. > +#define EQ5R_D0_CAN0 3 > +#define EQ5R_D0_CAN1 4 > +#define EQ5R_D0_CAN2 5 > +#define EQ5R_D0_SPI0 6 > +#define EQ5R_D0_SPI1 7 > +#define EQ5R_D0_SPI2 8 > +#define EQ5R_D0_SPI3 9 ... > + > +#define EQ5R_D2_MULTIPHY_SWRST_DIS 12 > +#define EQ5R_D2_MULTIPHY_APB_RST_DIS 13 > +/* 14 is refclk select, ie not a reset */ > +#define EQ5R_D2_PCIE0_LINK_MGMT_RST 15 > +#define EQ5R_D2_PCIE1_LINK_MGMT_RST 16 > +#define EQ5R_D2_PCIE0_LINK_PM_RST 17 > +#define EQ5R_D2_PCIE1_LINK_PM_RST 18 > +/* 19..31 are unknown */ No, they are not unknown. They are explicitly implemented by driver or these are not IDs. Best regards, Krzysztof
Hello, Thanks for your comments. I have a question for one: On Tue Dec 19, 2023 at 8:40 AM CET, Krzysztof Kozlowski wrote: > On 18/12/2023 18:16, Théo Lebrun wrote: > > Add DT-Schema bindings for the EyeQ5 reset controller. > > > > Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> > > --- > > .../bindings/reset/mobileye,eyeq5-reset.yaml | 69 +++++++++++++++++++ > > MAINTAINERS | 2 + > > include/dt-bindings/reset/mobileye,eyeq5-reset.h | 80 ++++++++++++++++++++++ > > 3 files changed, 151 insertions(+) > > [...] > > diff --git a/include/dt-bindings/reset/mobileye,eyeq5-reset.h b/include/dt-bindings/reset/mobileye,eyeq5-reset.h > > new file mode 100644 > > index 000000000000..ce59fe5409ac > > --- /dev/null > > +++ b/include/dt-bindings/reset/mobileye,eyeq5-reset.h > > @@ -0,0 +1,80 @@ > > +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ > > +/* > > + * Copyright (C) 2023 Mobileye Vision Technologies Ltd. > > + */ > > + > > +#ifndef _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H > > +#define _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H > > + > > +/* Domain 0 */ > > + > > +/* 0..2 are reserved */ > > No, they are not. IDs cannot be reserved. IDs start from 0 and are > incremented by 1. Reserving an ID contradicts to entire point of that > ID, so either drop entire file or make this proper IDs. Those are hardware IDs. I get what you mean is that they should not leak into bindings. That implies a mapping operation from bindings IDs to understood-by-hardware IDs. Can you confirm this is what you expect? Thanks, -- Théo Lebrun, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On 20/12/2023 10:25, Théo Lebrun wrote: > Hello, > > Thanks for your comments. I have a question for one: > > On Tue Dec 19, 2023 at 8:40 AM CET, Krzysztof Kozlowski wrote: >> On 18/12/2023 18:16, Théo Lebrun wrote: >>> Add DT-Schema bindings for the EyeQ5 reset controller. >>> >>> Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> >>> --- >>> .../bindings/reset/mobileye,eyeq5-reset.yaml | 69 +++++++++++++++++++ >>> MAINTAINERS | 2 + >>> include/dt-bindings/reset/mobileye,eyeq5-reset.h | 80 ++++++++++++++++++++++ >>> 3 files changed, 151 insertions(+) >>> > > [...] > >>> diff --git a/include/dt-bindings/reset/mobileye,eyeq5-reset.h b/include/dt-bindings/reset/mobileye,eyeq5-reset.h >>> new file mode 100644 >>> index 000000000000..ce59fe5409ac >>> --- /dev/null >>> +++ b/include/dt-bindings/reset/mobileye,eyeq5-reset.h >>> @@ -0,0 +1,80 @@ >>> +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ >>> +/* >>> + * Copyright (C) 2023 Mobileye Vision Technologies Ltd. >>> + */ >>> + >>> +#ifndef _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H >>> +#define _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H >>> + >>> +/* Domain 0 */ >>> + >>> +/* 0..2 are reserved */ >> >> No, they are not. IDs cannot be reserved. IDs start from 0 and are >> incremented by 1. Reserving an ID contradicts to entire point of that >> ID, so either drop entire file or make this proper IDs. > > Those are hardware IDs. I get what you mean is that they should not leak There is no such thing as "hardware ID". It is some value passed to hardware/firmware or hardware register address/offset. There is no point to store hardware register values/offsets in the bindings. > into bindings. That implies a mapping operation from bindings IDs to > understood-by-hardware IDs. Can you confirm this is what you expect? https://en.wikipedia.org/wiki/Language_binding Bindings is an abstraction layer, not hardware, therefore my expectation is not having some sort of register values or offsets in the binding. Drop the header from bindings. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml b/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml new file mode 100644 index 000000000000..cab6a75ba59d --- /dev/null +++ b/Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml @@ -0,0 +1,69 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/reset/mobileye,eyeq5-reset.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mobileye EyeQ5 reset controller + +description: + The EyeQ5 reset driver handles three reset domains. It is custom to this + platform, its registers live in a shared region called OLB. + +maintainers: + - Grégory Clement <gregory.clement@bootlin.com> + - Théo Lebrun <theo.lebrun@bootlin.com> + - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com> + +properties: + $nodename: + pattern: "^reset-controller$" + description: + We have no unique address, we rely on OLB. + + compatible: + const: mobileye,eyeq5-reset + + "#reset-cells": + const: 2 + description: + The first cell is the domain (0 to 2 inclusive) and the second one is the + reset index inside that domain. + + mobileye,olb: + $ref: /schemas/types.yaml#/definitions/phandle + description: + A phandle to the OLB syscon. This is a fallback to using the parent as + syscon node. + +required: + - compatible + - "#reset-cells" + +additionalProperties: false + +examples: + - | + olb@e00000 { + compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd"; + reg = <0xe00000 0x400>; + reg-io-width = <4>; + + reset-controller { + compatible = "mobileye,eyeq5-reset"; + #reset-cells = <2>; + }; + }; + + - | + olb: olb@e00000 { + compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd"; + reg = <0xe00000 0x400>; + reg-io-width = <4>; + }; + + reset-controller { + compatible = "mobileye,eyeq5-reset"; + #reset-cells = <2>; + mobileye,olb = <&olb>; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 4a7bd6b40d74..9096a940b425 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14553,9 +14553,11 @@ M: Théo Lebrun <theo.lebrun@bootlin.com> L: linux-mips@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/mips/mobileye.yaml +F: Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml F: arch/mips/boot/dts/mobileye/ F: arch/mips/configs/generic/board-eyeq5.config F: arch/mips/generic/board-epm5.its.S +F: include/dt-bindings/reset/mobileye,eyeq5-reset.h F: include/dt-bindings/soc/mobileye,eyeq5.h MODULE SUPPORT diff --git a/include/dt-bindings/reset/mobileye,eyeq5-reset.h b/include/dt-bindings/reset/mobileye,eyeq5-reset.h new file mode 100644 index 000000000000..ce59fe5409ac --- /dev/null +++ b/include/dt-bindings/reset/mobileye,eyeq5-reset.h @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (C) 2023 Mobileye Vision Technologies Ltd. + */ + +#ifndef _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H +#define _DT_BINDINGS_RESET_MOBILEYE_EYEQ5_RESET_H + +/* Domain 0 */ + +/* 0..2 are reserved */ +#define EQ5R_D0_CAN0 3 +#define EQ5R_D0_CAN1 4 +#define EQ5R_D0_CAN2 5 +#define EQ5R_D0_SPI0 6 +#define EQ5R_D0_SPI1 7 +#define EQ5R_D0_SPI2 8 +#define EQ5R_D0_SPI3 9 +#define EQ5R_D0_UART0 10 +#define EQ5R_D0_UART1 11 +#define EQ5R_D0_UART2 12 +#define EQ5R_D0_I2C0 13 +#define EQ5R_D0_I2C1 14 +#define EQ5R_D0_I2C2 15 +#define EQ5R_D0_I2C3 16 +#define EQ5R_D0_I2C4 17 +#define EQ5R_D0_TIMER0 18 +#define EQ5R_D0_TIMER1 19 +#define EQ5R_D0_TIMER2 20 +#define EQ5R_D0_TIMER3 21 +#define EQ5R_D0_TIMER4 22 +#define EQ5R_D0_WD0 23 +#define EQ5R_D0_EXT0 24 +#define EQ5R_D0_EXT1 25 +#define EQ5R_D0_GPIO 26 +#define EQ5R_D0_WD1 27 +/* 28..31 are reserved */ + +/* Domain 1 */ + +/* Vector Microcode Processors */ +#define EQ5R_D1_VMP0 0 +#define EQ5R_D1_VMP1 1 +#define EQ5R_D1_VMP2 2 +#define EQ5R_D1_VMP3 3 +/* Programmable Macro Array */ +#define EQ5R_D1_PMA0 4 +#define EQ5R_D1_PMA1 5 +#define EQ5R_D1_PMAC0 6 +#define EQ5R_D1_PMAC1 7 +/* Multi-threaded Processing Clusters */ +#define EQ5R_D1_MPC0 8 +#define EQ5R_D1_MPC1 9 + +/* Domain 2 */ + +#define EQ5R_D2_PCIE0_CORE_SWRST_DIS 0 +#define EQ5R_D2_PCIE0_APB_SWRST_DIS 1 +#define EQ5R_D2_PCIE0_LINK_AXI_RST_DIS 2 +#define EQ5R_D2_PCIE0_LINK_MGMT_RST_DIS 3 +#define EQ5R_D2_PCIE0_LINK_HOT_RST_DIS 4 +#define EQ5R_D2_PCIE0_LINK_PIPE_RST_DIS 5 + +#define EQ5R_D2_PCIE1_CORE_SWRST_DIS 6 +#define EQ5R_D2_PCIE1_APB_SWRST_DIS 7 +#define EQ5R_D2_PCIE1_LINK_AXI_RST_DIS 8 +#define EQ5R_D2_PCIE1_LINK_MGMT_RST_DIS 9 +#define EQ5R_D2_PCIE1_LINK_HOT_RST_DIS 10 +#define EQ5R_D2_PCIE1_LINK_PIPE_RST_DIS 11 + +#define EQ5R_D2_MULTIPHY_SWRST_DIS 12 +#define EQ5R_D2_MULTIPHY_APB_RST_DIS 13 +/* 14 is refclk select, ie not a reset */ +#define EQ5R_D2_PCIE0_LINK_MGMT_RST 15 +#define EQ5R_D2_PCIE1_LINK_MGMT_RST 16 +#define EQ5R_D2_PCIE0_LINK_PM_RST 17 +#define EQ5R_D2_PCIE1_LINK_PM_RST 18 +/* 19..31 are unknown */ + +#endif
Add DT-Schema bindings for the EyeQ5 reset controller. Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> --- .../bindings/reset/mobileye,eyeq5-reset.yaml | 69 +++++++++++++++++++ MAINTAINERS | 2 + include/dt-bindings/reset/mobileye,eyeq5-reset.h | 80 ++++++++++++++++++++++ 3 files changed, 151 insertions(+)