On 23/09/2024 23:09, Chris Packham wrote: > Hi Krzyzstof, > > On 23/09/24 08:25, Krzysztof Kozlowski wrote: >> On Fri, Sep 20, 2024 at 12:09:28PM +1200, Chris Packham wrote: >>> Add dtschema for the I2C controller on the RTL9300 SoC. The I2C >>> controllers on this SoC are part of the "switch" block which is >>> represented here as a syscon node. The SCL pins are dependent on the I2C >>> controller (GPIO8 for the first controller, GPIO 17 for the second). The >>> SDA pins can be assigned to either one of the I2C controllers (but not >>> both). >>> >>> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> >>> --- >>> >>> Notes: >>> Changes in v2: >>> - Use reg property for controller registers >>> - Remove global-control-offset (will be hard coded in driver) >>> - Integrated the multiplexing function. Child nodes now represent the >>> available SDA lines >>> >>> .../bindings/i2c/realtek,rtl9300-i2c.yaml | 82 +++++++++++++++++++ >>> MAINTAINERS | 6 ++ >>> 2 files changed, 88 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/i2c/realtek,rtl9300-i2c.yaml >>> >>> diff --git a/Documentation/devicetree/bindings/i2c/realtek,rtl9300-i2c.yaml b/Documentation/devicetree/bindings/i2c/realtek,rtl9300-i2c.yaml >>> new file mode 100644 >>> index 000000000000..e8c37239b299 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/i2c/realtek,rtl9300-i2c.yaml >>> @@ -0,0 +1,82 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://scanmail.trustwave.com/?c=20988&d=2_3w5qdKawcvw7Bv6K3mA_v4JF1rlxddN3AhCekStg&u=http%3a%2f%2fdevicetree%2eorg%2fschemas%2fi2c%2frealtek%2crtl9300-i2c%2eyaml%23 >>> +$schema: http://scanmail.trustwave.com/?c=20988&d=2_3w5qdKawcvw7Bv6K3mA_v4JF1rlxddNyJxDbgXsw&u=http%3a%2f%2fdevicetree%2eorg%2fmeta-schemas%2fcore%2eyaml%23 >>> + >>> +title: Realtek RTL I2C Controller >>> + >>> +maintainers: >>> + - Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> >>> + >>> +description: >>> + The RTL9300 SoC has two I2C controllers. Each of these has an SCL line (which >>> + if not-used for SCL can be a GPIO). There are 8 common SDA lines that can be >>> + assigned to either I2C controller. >>> + >>> +properties: >>> + compatible: >>> + const: realtek,rtl9300-i2c >>> + >>> + reg: >>> + description: Register offset and size this I2C controller. >>> + >>> +patternProperties: >>> + '^i2c@[0-7]$': >>> + $ref: /schemas/i2c/i2c-controller.yaml >>> + unevaluatedProperties: false >>> + >>> + properties: >>> + reg: >>> + description: The SDA pin associated with the I2C bus. >>> + maxItems: 1 >>> + >>> + required: >>> + - reg >>> + >>> +unevaluatedProperties: false >> This goes after "required:" block. > Ack. >>> + >>> +required: >>> + - compatible >>> + - reg >>> + >>> +examples: >>> + - | >>> + switch@1b000000 { >>> + compatible = "realtek,rtl9302c-switch", "syscon", "simple-mfd"; >> Drop... or put entire example in the parent device node. > > OK I'll drop it. > >> >>> + reg = <0x1b000000 0x10000>; >>> + #address-cells = <1>; >>> + #size-cells = <1>; >>> + >>> + i2c@36c { >>> + compatible = "realtek,rtl9300-i2c"; >> Parent is 9302c, but this is 9300? > > The RTL9302C is one of a series of switch chips with integrated CPUs. > There is also the RTL9301, RTL9302B and RTL9303 (there my be others but > those are the 4 I know about). The differences are all around the switch > port/SERDES. The documentation uses "RTL9300" when referring to things > common across the family. There's even an app note titled > "RTL9300_I2C_Application_Note_V1.1(83)". So I'd really like to use > "rtl9300" when talking about the SoC peripherals but use the specific > chip compatible when talking about the Ethernet switch or the overall > chip. I'm also tempted to add the other variants to my other in-flight > patch series. Using family variant alone is in general not accepted. You need SoC specific compatible in the front. > > "realtek,rtl9300-i2c" also happens to be what openwrt is using, but I'm > not sure that that helps my argument as the binding is now quite different. Does not matter. They could be using "realtek,we-like-to-use-whatever-we-invented-soc", but that does not mean we should accept it. Best regards, Krzysztof