mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 05:24:47 +08:00
22c75545c4
The at24 driver allows to register I2C EEPROM chips using different vendor and devices, but the I2C subsystem does not take the vendor into account when matching using the I2C table since it only has device entries. But when matching using an OF table, both the vendor and device has to be taken into account so the driver defines only a set of compatible strings using the "atmel" vendor as a generic fallback for compatible I2C devices. So add this generic fallback to the device node compatible string to make the device to match the driver using the OF device ID table. Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
626 lines
11 KiB
Plaintext
626 lines
11 KiB
Plaintext
/*
|
|
* Embedded Artist LPC4357 Developer's Kit
|
|
*
|
|
* Copyright 2015 Joachim Eastwood <manabian@gmail.com>
|
|
*
|
|
* This code is released using a dual license strategy: BSD/GPL
|
|
* You can choose the licence that better fits your requirements.
|
|
*
|
|
* Released under the terms of 3-clause BSD License
|
|
* Released under the terms of GNU General Public License Version 2.0
|
|
*
|
|
*/
|
|
/dts-v1/;
|
|
|
|
#include "lpc18xx.dtsi"
|
|
#include "lpc4357.dtsi"
|
|
|
|
#include "dt-bindings/input/input.h"
|
|
#include "dt-bindings/gpio/gpio.h"
|
|
|
|
/ {
|
|
model = "Embedded Artists' LPC4357 Developer's Kit";
|
|
compatible = "ea,lpc4357-developers-kit", "nxp,lpc4357", "nxp,lpc4350";
|
|
|
|
aliases {
|
|
serial0 = &uart0;
|
|
serial1 = &uart1;
|
|
serial2 = &uart2;
|
|
serial3 = &uart3;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = &uart0;
|
|
};
|
|
|
|
memory@28000000 {
|
|
device_type = "memory";
|
|
reg = <0x28000000 0x2000000>; /* 32 MB */
|
|
};
|
|
|
|
vcc: vcc_fixed {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "3v3-supply";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
/* vmmc is controlled by sdmmc host internally */
|
|
vmmc: vmmc_fixed {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vmmc-supply";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
gpio_joystick {
|
|
compatible = "gpio-keys-polled";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpio_joystick_pins>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
poll-interval = <100>;
|
|
autorepeat;
|
|
|
|
button0 {
|
|
label = "joy_enter";
|
|
linux,code = <KEY_ENTER>;
|
|
gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
button1 {
|
|
label = "joy_left";
|
|
linux,code = <KEY_LEFT>;
|
|
gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
button2 {
|
|
label = "joy_up";
|
|
linux,code = <KEY_UP>;
|
|
gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
button3 {
|
|
label = "joy_right";
|
|
linux,code = <KEY_RIGHT>;
|
|
gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
button4 {
|
|
label = "joy_down";
|
|
linux,code = <KEY_DOWN>;
|
|
gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
leds_mmio {
|
|
compatible = "gpio-leds";
|
|
|
|
led1 {
|
|
gpios = <&mmio_leds 15 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "heartbeat";
|
|
};
|
|
|
|
led2 {
|
|
gpios = <&mmio_leds 14 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led3 {
|
|
gpios = <&mmio_leds 13 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led4 {
|
|
gpios = <&mmio_leds 12 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led5 {
|
|
gpios = <&mmio_leds 11 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led6 {
|
|
gpios = <&mmio_leds 10 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led7 {
|
|
gpios = <&mmio_leds 9 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led8 {
|
|
gpios = <&mmio_leds 8 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led9 {
|
|
gpios = <&mmio_leds 7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led10 {
|
|
gpios = <&mmio_leds 6 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led11 {
|
|
gpios = <&mmio_leds 5 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led12 {
|
|
gpios = <&mmio_leds 4 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led13 {
|
|
gpios = <&mmio_leds 3 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led14 {
|
|
gpios = <&mmio_leds 2 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led15 {
|
|
gpios = <&mmio_leds 1 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led16 {
|
|
gpios = <&mmio_leds 0 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
emc_pins: emc-pins {
|
|
emc_addr0_23_cfg {
|
|
pins = "p2_9", "p2_10", "p2_11", "p2_12",
|
|
"p2_13", "p1_0", "p1_1", "p1_2",
|
|
"p2_8", "p2_7", "p2_6", "p2_2",
|
|
"p2_1", "p2_0", "p6_8", "p6_7",
|
|
"pd_16", "pd_15", "pe_0", "pe_1",
|
|
"pe_2", "pe_3", "pe_4", "pa_4";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_data0_31_cfg {
|
|
pins = "p1_7", "p1_8", "p1_9", "p1_10",
|
|
"p1_11", "p1_12", "p1_13", "p1_14",
|
|
"p5_4", "p5_5", "p5_6", "p5_7",
|
|
"p5_0", "p5_1", "p5_2", "p5_3",
|
|
"pd_2", "pd_3", "pd_4", "pd_5",
|
|
"pd_6", "pd_7", "pd_8", "pd_9",
|
|
"pe_5", "pe_6", "pe_7", "pe_8",
|
|
"pe_9", "pe_10", "pe_11", "pe_12";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_we_oe_cfg {
|
|
pins = "p1_6", "p1_3";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_bls0_3_cfg {
|
|
pins = "p1_4", "p6_6", "pd_13", "pd_10";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_cs0_3_cfg {
|
|
pins = "p1_5", "p6_3", "pd_12", "pd_11";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_sdram_dqm0_3_cfg {
|
|
pins = "p6_12", "p6_10", "pd_0", "pe_13";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_sdram_ras_cas_cfg {
|
|
pins = "p6_5", "p6_4";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_sdram_dycs0_cfg {
|
|
pins = "p6_9";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_sdram_cke_cfg {
|
|
pins = "p6_11";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
emc_sdram_clock_cfg {
|
|
pins = "clk0", "clk1", "clk2", "clk3";
|
|
function = "emc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
};
|
|
|
|
enet_rmii_pins: enet-rmii-pins {
|
|
enet_rmii_rxd_cfg {
|
|
pins = "p1_15", "p0_0";
|
|
function = "enet";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
enet_rmii_txd_cfg {
|
|
pins = "p1_18", "p1_20";
|
|
function = "enet";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
enet_rmii_rx_dv_cfg {
|
|
pins = "p1_16";
|
|
function = "enet";
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
enet_rmii_tx_en_cfg {
|
|
pins = "p0_1";
|
|
function = "enet";
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
enet_ref_clk_cfg {
|
|
pins = "p1_19";
|
|
function = "enet";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
enet_mdio_cfg {
|
|
pins = "p1_17";
|
|
function = "enet";
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
enet_mdc_cfg {
|
|
pins = "pc_1";
|
|
function = "enet";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
};
|
|
|
|
gpio_joystick_pins: gpio-joystick-pins {
|
|
gpio_joystick_cfg {
|
|
pins = "p9_0", "p9_1", "pa_1", "pa_2", "pa_3";
|
|
function = "gpio";
|
|
input-enable;
|
|
bias-disable;
|
|
};
|
|
};
|
|
|
|
i2c0_pins: i2c0-pins {
|
|
i2c0_pins_cfg {
|
|
pins = "i2c0_scl", "i2c0_sda";
|
|
function = "i2c0";
|
|
input-enable;
|
|
};
|
|
};
|
|
|
|
sdmmc_pins: sdmmc-pins {
|
|
sdmmc_clk_cfg {
|
|
pins = "pc_0";
|
|
function = "sdmmc";
|
|
slew-rate = <1>;
|
|
bias-pull-down;
|
|
};
|
|
|
|
sdmmc_cmd_dat0_3_cfg {
|
|
pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10";
|
|
function = "sdmmc";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
sdmmc_cd_cfg {
|
|
pins = "pc_8";
|
|
function = "sdmmc";
|
|
bias-pull-down;
|
|
input-enable;
|
|
};
|
|
|
|
sdmmc_pow_cfg {
|
|
pins = "pc_9";
|
|
function = "sdmmc";
|
|
bias-pull-down;
|
|
};
|
|
};
|
|
|
|
spifi_pins: spifi-pins {
|
|
spifi_clk_cfg {
|
|
pins = "p3_3";
|
|
function = "spifi";
|
|
slew-rate = <1>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
spifi_mosi_miso_sio2_3_cfg {
|
|
pins = "p3_7", "p3_6", "p3_5", "p3_4";
|
|
function = "spifi";
|
|
slew-rate = <0>;
|
|
bias-disable;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
spifi_cs_cfg {
|
|
pins = "p3_8";
|
|
function = "spifi";
|
|
bias-disable;
|
|
};
|
|
};
|
|
|
|
ssp0_pins: ssp0-pins {
|
|
ssp0_sck_miso_mosi {
|
|
pins = "pf_0", "pf_2", "pf_3";
|
|
function = "ssp0";
|
|
slew-rate = <1>;
|
|
bias-pull-down;
|
|
input-enable;
|
|
input-schmitt-disable;
|
|
};
|
|
|
|
ssp0_ssel {
|
|
pins = "pf_1";
|
|
function = "ssp0";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
uart0_pins: uart0-pins {
|
|
uart0_rx_cfg {
|
|
pins = "pf_11";
|
|
function = "uart0";
|
|
input-schmitt-disable;
|
|
bias-disable;
|
|
input-enable;
|
|
};
|
|
|
|
uart0_tx_cfg {
|
|
pins = "pf_10";
|
|
function = "uart0";
|
|
bias-pull-down;
|
|
};
|
|
};
|
|
|
|
uart3_pins: uart3-pins {
|
|
uart3_rx_cfg {
|
|
pins = "p2_4";
|
|
function = "uart3";
|
|
input-schmitt-disable;
|
|
bias-disable;
|
|
input-enable;
|
|
};
|
|
|
|
uart3_tx_cfg {
|
|
pins = "p9_3";
|
|
function = "uart3";
|
|
bias-pull-down;
|
|
};
|
|
};
|
|
|
|
usb0_pins: usb0-pins {
|
|
usb0_pwr_enable {
|
|
pins = "p2_3";
|
|
function = "usb0";
|
|
};
|
|
|
|
usb0_pwr_fault {
|
|
pins = "p8_0";
|
|
function = "usb0";
|
|
bias-disable;
|
|
input-enable;
|
|
};
|
|
};
|
|
};
|
|
|
|
&adc0 {
|
|
status = "okay";
|
|
vref-supply = <&vcc>;
|
|
};
|
|
|
|
&i2c0 {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
clock-frequency = <400000>;
|
|
|
|
mma7455@1d {
|
|
compatible = "fsl,mma7455";
|
|
reg = <0x1d>;
|
|
};
|
|
|
|
lm75@48 {
|
|
compatible = "nxp,lm75";
|
|
reg = <0x48>;
|
|
};
|
|
|
|
eeprom@57 {
|
|
compatible = "microchip,24c64", "atmel,24c64";
|
|
reg = <0x57>;
|
|
};
|
|
};
|
|
|
|
&dac {
|
|
status = "okay";
|
|
vref-supply = <&vcc>;
|
|
};
|
|
|
|
&emc {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&emc_pins>;
|
|
|
|
cs0 {
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
mpmc,cs = <0>;
|
|
mpmc,memory-width = <16>;
|
|
mpmc,byte-lane-low;
|
|
mpmc,write-enable-delay = <0>;
|
|
mpmc,output-enable-delay = <0>;
|
|
mpmc,read-access-delay = <70>;
|
|
mpmc,page-mode-read-delay = <70>;
|
|
|
|
flash@0,0 {
|
|
compatible = "sst,sst39vf320", "cfi-flash";
|
|
reg = <0 0 0x400000>;
|
|
bank-width = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "bootloader";
|
|
reg = <0x000000 0x040000>; /* 256 KiB */
|
|
};
|
|
|
|
partition@1 {
|
|
label = "kernel";
|
|
reg = <0x040000 0x2c0000>; /* 2.75 MiB */
|
|
};
|
|
|
|
partition@2 {
|
|
label = "rootfs";
|
|
reg = <0x300000 0x100000>; /* 1 MiB */
|
|
};
|
|
};
|
|
};
|
|
|
|
cs2 {
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
|
|
mpmc,cs = <2>;
|
|
mpmc,memory-width = <16>;
|
|
|
|
mmio_leds: gpio@2,0 {
|
|
compatible = "ti,7416374";
|
|
reg = <2 0 0x2>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
};
|
|
};
|
|
|
|
&enet_tx_clk {
|
|
clock-frequency = <50000000>;
|
|
};
|
|
|
|
&mac {
|
|
status = "okay";
|
|
phy-mode = "rmii";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&enet_rmii_pins>;
|
|
};
|
|
|
|
&mmcsd {
|
|
status = "okay";
|
|
bus-width = <4>;
|
|
vmmc-supply = <&vmmc>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sdmmc_pins>;
|
|
};
|
|
|
|
&spifi {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spifi_pins>;
|
|
|
|
flash {
|
|
compatible = "jedec,spi-nor";
|
|
spi-cpol;
|
|
spi-cpha;
|
|
spi-rx-bus-width = <4>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "data";
|
|
reg = <0 0x200000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&ssp0 {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ssp0_pins>;
|
|
num-cs = <1>;
|
|
};
|
|
|
|
&uart0 {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pins>;
|
|
};
|
|
|
|
&uart3 {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart3_pins>;
|
|
};
|
|
|
|
&usb0 {
|
|
status = "okay";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb0_pins>;
|
|
};
|