50cb3a750f
The current driver has some troubles: - Some groupings are wrong. - The pinctrl group0 owns pins never used (at least in Openwrt) for any pinmux. The driver hijacks all the pins on the group avoiding any other use, spite they're free. I.e. for buttons, causing this kernel error: [ 4.735928] gpio-keys-polled keys: unable to claim gpio 479, err=-22 [ 4.742642] gpio-keys-polled: probe of keys failed with error -22 - Minor errors about groupings on the documentation - Missing "diag" grouping in dtsi - Wrong groupings in dtsi Fix it by setting the correct groups. And relax the pin capturing, letting the gpios belonging to any group to be used for other purposes like buttons. This was the behavior with stock firmwares and old OpenWrt versions which never caused any trouble. Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
161 lines
3.0 KiB
Plaintext
161 lines
3.0 KiB
Plaintext
/dts-v1/;
|
|
|
|
/ {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "brcm,bcm6348";
|
|
|
|
aliases {
|
|
pflash = &pflash;
|
|
pinctrl = &pinctrl;
|
|
serial0 = &uart0;
|
|
spi0 = &lsspi;
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu@0 {
|
|
compatible = "brcm,bmips3300", "mips,mips4Kc";
|
|
device_type = "cpu";
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
cpu_intc: interrupt-controller {
|
|
#address-cells = <0>;
|
|
compatible = "mti,cpu-interrupt-controller";
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
};
|
|
|
|
memory { device_type = "memory"; reg = <0 0>; };
|
|
|
|
pflash: nor@1fc00000 {
|
|
compatible = "cfi-flash";
|
|
reg = <0x1fc00000 0x400000>;
|
|
bank-width = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
ubus@fff00000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
compatible = "simple-bus";
|
|
interrupt-parent = <&periph_intc>;
|
|
|
|
periph_intc: interrupt-controller@fffe000c {
|
|
compatible = "brcm,bcm6345-l1-intc";
|
|
reg = <0xfffe000c 0x8>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
|
|
interrupt-parent = <&cpu_intc>;
|
|
interrupts = <2>;
|
|
};
|
|
|
|
ext_intc: interrupt-controller@fffe0014 {
|
|
compatible = "brcm,bcm6345-ext-intc";
|
|
reg = <0xfffe0014 0x4>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&cpu_intc>;
|
|
interrupts = <3>, <4>, <5>, <6>;
|
|
|
|
brcm,field-width = <5>;
|
|
};
|
|
|
|
pinctrl: pin-controller@fffe0400 {
|
|
compatible = "brcm,bcm6348-pinctrl";
|
|
reg = <0xfffe0400 0x8>,
|
|
<0xfffe0408 0x8>,
|
|
<0xfffe0418 0x4>;
|
|
reg-names = "dirout", "dat", "mode";
|
|
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-parent = <&ext_intc>;
|
|
interrupts = <0 0>, <1 0>, <2 0>, <3 0>;
|
|
interrupt-names = "gpio32", "gpio33", "gpio34", "gpio35";
|
|
|
|
pinctrl_ext_ephy: ext_ephy {
|
|
function = "ext_ephy";
|
|
groups = "group1", "group4";
|
|
};
|
|
|
|
pinctrl_mii_snoop: mii_snoop {
|
|
function = "mii_snoop";
|
|
groups = "group1", "group4";
|
|
};
|
|
|
|
pinctrl_legacy_led: legacy_led {
|
|
function = "legacy_led";
|
|
groups = "group4";
|
|
};
|
|
|
|
pinctrl_mii_pccard: mii_pccard {
|
|
function = "mii_pccard";
|
|
groups = "group1";
|
|
};
|
|
|
|
pinctrl_pci: pci {
|
|
function = "pci";
|
|
groups = "group2";
|
|
};
|
|
|
|
pinctrl_spi_master_uart: spi_master_uart {
|
|
function = "spi_master_uart";
|
|
groups = "group1";
|
|
};
|
|
|
|
pinctrl_ext_mii: ext_mii {
|
|
function = "ext_mii";
|
|
groups = "group0", "group3";
|
|
};
|
|
|
|
pinctrl_utopia: utopia {
|
|
function = "utopia";
|
|
groups = "group1", "group3", "group4";
|
|
};
|
|
|
|
pinctrl_diag: diag {
|
|
function = "diag";
|
|
groups = "group0", "group1", "group2", "group3", "group4";
|
|
};
|
|
};
|
|
|
|
uart0: serial@fffe0300 {
|
|
compatible = "brcm,bcm6345-uart";
|
|
reg = <0xfffe0300 0x18>;
|
|
|
|
interrupt-parent = <&periph_intc>;
|
|
interrupts = <2>;
|
|
|
|
/* clocks = <&periph_clk>; */
|
|
/* clock-names = "refclk"; */
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
lsspi: spi@fffe0c00 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "brcm,bcm6348-spi";
|
|
reg = <0xfffe0c00 0x40>;
|
|
interrupts = <1>;
|
|
/* clocks = <&clkctl 9>; */
|
|
|
|
};
|
|
};
|
|
};
|