blob: 30bc5b177de828d3e97313ac63cdd87f3bedba11 [file] [log] [blame]
#include "armada-388-clearfog-base.dts"
&w25q32 {
status = "okay";
/* The chip itself is rated up to 50MHz for regular reads, 60MHz for
* all other transactions, but somehow the mere presence of the
* MAX14830 EV board breaks these transfers. Changing the speed all the
* way down to 100kHz doesn't help. */
};
/ {
clocks {
spi_uart_clk: osc_max14830 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <3686400>;
};
};
soc {
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000
/* all above is from the upstream DTS */
/* maybe-default mappings for SPI1 CS0 from the datasheet */
MBUS_ID(0x01, 0x1a) 0 0xd4000000 0x4000000
/* SPI1 CS1 */
MBUS_ID(0x01, 0x5a) 0 0xd8000000 0x4000000
/* SPI1 CS2 */
MBUS_ID(0x01, 0x9a) 0 0xd0000000 0x4000000
>;
internal-regs {
sdhci@d8000 {
/delete-property/ cd-gpios;
broken-cd;
};
};
};
gpio_i2c {
compatible = "i2c-gpio";
sda-gpios = <&gpio0 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpio0 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
i2c-gpio.delay-us = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
};
&uart1_pins {
status = "disabled";
};
&uart1 {
status = "disabled";
};
&gpio1 {
mikrobus_pwm {
/* MPP54: this needs an external pull-up */
gpio-hog;
gpios = <22 GPIO_ACTIVE_HIGH>;
input;
line-name = "MAX14830-MCP23S17-int";
};
};
&gpio0 {
gpio_cs {
gpio-hog;
gpios = <22 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "MCP23S17-CS";
};
};
&spi1 {
reg = <MBUS_ID(0xf0, 0x01) 0x10680 0x50> /* control */
, <MBUS_ID(0x01, 0x1a) 0 0xffffffff> /* CS0 */
, <0>
/* <MBUS_ID(0x01, 0x5a) 0 0xffffffff>
We're using CS GPIO which doesn't play well with the direct mode at all */
, <MBUS_ID(0x01, 0x9a) 0 0xffffffff> /* CS2 */
, <MBUS_ID(0x01, 0xda) 0 0xffffffff> /* CS3 */
;
cs-gpios = <0>, <&gpio0 22 GPIO_ACTIVE_HIGH>, <0>;
max14830: max14830@2 {
compatible = "maxim,max14830";
reg = <2>;
clocks = <&spi_uart_clk>;
clock-names = "xtal";
interrupt-parent = <&gpio1>;
interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
gpio-controller;
#gpio-cells = <2>;
spi-max-frequency = <26000000>;
};
gpio_spi_chips: gpio@1 {
compatible = "microchip,mcp23s17";
reg = <1>;
interrupt-parent = <&gpio1>;
interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
microchip,spi-present-mask = <0x06>; /* extra addresses 1 and 2 */
microchip,irq-mirror;
microchip,irq-open-drain;
spi-max-frequency = <10000000>;
};
};