Jared McNeill <jmcneill%invisible.ca@localhost> wrote:
On Sun, 1 Jul 2018, Robert Swindells wrote:
Jared McNeill <jmcneill%invisible.ca@localhost> wrote:
How to access it is dictated by the binding spec for your device. You need
some way to find the phandle. Two methods I have encountered:
[snip]
The Odroid C2 doesn't use either of them, there are no cross references
and the devices are at the same level in the tree.
Can you point me to an example?
The ethernet controller has two registers within the page at 0xc8834000
periphs@c8834000 {
compatible = "simple-bus";
reg = <0x00000000 0xc8834000 0x00000000 0x00002000>;
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
ranges = <0x00000000 0x00000000 0x00000000 0xc8834000 0x00000000 0x00002000>;
ethernet@c9410000 {
compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gx
bb-dwmac", "snps,dwmac";
reg = <0x00000000 0xc9410000 0x00000000 0x00010000 0x00000000 0xc8834540 0x00000000 0x00000004>;
interrupts = <0x00000000 0x00000008 0x00000001>;
interrupt-names = "macirq";
status = "okay";
clocks = <0x0000000c 0x00000024 0x0000000c 0x00000004 0x0000000c 0x0000000f>;
clock-names = "stmmaceth", "clkin0", "clkin1";
pinctrl-0 = <0x00000018>;
pinctrl-names = "default";
phy-handle = <0x00000019>;
phy-mode = "rgmii";
snps,reset-gpio = <0x0000001a 0x0000000e 0x00000000>;
snps,reset-delays-us = <0x00000000 0x00002710 0x000f4240>;
snps,reset-active-low;
amlogic,tx-delay-ns = <0x00000002>;
There are other things within the same page:
rng {
compatible = "amlogic,meson-rng";
reg = <0x00000000 0x00000000 0x00000000 0x00000004>;
clocks = <0x0000000c 0x00000019>;
clock-names = "core";
};
pinctrl@4b0 {
compatible = "amlogic,meson-gxbb-periphs-pinctrl";
...
The device tree from Hardkernel's kernel is different again to the
mainline one:
gpiomem {
compatible = "amlogic,meson-gpiomem";
reg = <0x0 0xc8834000 0x0 0x1000>;
status = "okay";
};
ethmac: ethernet@0xc9410000{
compatible = "amlogic, gxbb-rgmii-dwmac";
reg = <0x0 0xc9410000 0x0 0x10000
0x0 0xc8834540 0x0 0x8>;
interrupts = <0 8 1>;
phy-mode= "rgmii";
pinctrl-names = "eth_pins";
pinctrl-0 = <ð_pins>;
rst_pin-gpios = <&gpio GPIOZ_14 0>;
mc_val = <0x1621>;
resets = <&clock GCLK_IDX_ETHERNET>;
reset-names = "ethpower";
interrupt-names = "macirq";
clocks = <&clock CLK_81>;
clock-names = "ethclk81";
max-frame-size = <3582>;