states = <1300000 0x1 1400000 0x0>;
};
};
-
- sound {
- compatible = "fsl,imx6ul-evk-wm8960",
- "fsl,imx-audio-wm8960";
- model = "wm8960-audio";
- cpu-dai = <&sai2>;
- audio-codec = <&codec>;
- asrc-controller = <&asrc>;
- codec-master;
- gpr = <&gpr 4 0x100000 0x100000>;
- /*
- * hp-det = <hp-det-pin hp-det-polarity>;
- * hp-det-pin: JD1 JD2 or JD3
- * hp-det-polarity = 0: hp detect high for headphone
- * hp-det-polarity = 1: hp detect high for speaker
- */
- hp-det = <3 0>;
- hp-det-gpios = <&gpio5 4 0>;
- mic-det-gpios = <&gpio5 4 0>;
- audio-routing =
- "Headphone Jack", "HP_L",
- "Headphone Jack", "HP_R",
- "Ext Spk", "SPK_LP",
- "Ext Spk", "SPK_LN",
- "Ext Spk", "SPK_RP",
- "Ext Spk", "SPK_RN",
- "LINPUT2", "Mic Jack",
- "LINPUT3", "Mic Jack",
- "RINPUT1", "Main MIC",
- "RINPUT2", "Main MIC",
- "Mic Jack", "MICB",
- "Main MIC", "MICB",
- "CPU-Playback", "ASRC-Playback",
- "Playback", "CPU-Playback",
- "ASRC-Capture", "CPU-Capture",
- "CPU-Capture", "Capture";
- };
};
&cpu0 {
fsl,ldo-bypass = <0>; /* DCDC, ldo-enable */
};
-&i2c1 {
- clock-frequency = <100000>;
- pinctrl-names = "default", "gpio";
- pinctrl-0 = <&pinctrl_i2c1>;
- pinctrl-1 = <&pinctrl_i2c1_gpio>;
- scl-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
- sda-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
- status = "okay";
-
- mag3110@0e {
- compatible = "fsl,mag3110";
- reg = <0x0e>;
- position = <2>;
- };
-
- fxls8471@1e {
- compatible = "fsl,fxls8471";
- reg = <0x1e>;
- position = <0>;
- interrupt-parent = <&gpio5>;
- interrupts = <0 8>;
- };
-};
-
&i2c2 {
clock_frequency = <100000>;
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c2>;
pinctrl-1 = <&pinctrl_i2c2_gpio>;
- scl-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
- sda-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
status = "okay";
-
- codec: wm8960@1a {
- compatible = "wlf,wm8960";
- reg = <0x1a>;
- clocks = <&clks IMX6UL_CLK_SAI2>;
- clock-names = "mclk";
- wlf,shared-lrclk;
- };
};
&iomuxc {
>;
};
- pinctrl_i2c1: i2c1grp {
- fsl,pins = <
- MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
- MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
- >;
- };
-
- pinctrl_i2c1_gpio: i2c1grp_gpio {
- fsl,pins = <
- MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x1b8b0
- MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x1b8b0
- >;
- };
-
pinctrl_i2c2: i2c2grp {
fsl,pins = <
- MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
- MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
+ MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0
+ MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b0
>;
};
pinctrl_i2c2_gpio: i2c2grp_gpio {
fsl,pins = <
- MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x1b8b0
- MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x1b8b0
+ MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 0x1b8b0
+ MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x1b8b0
>;
};
>;
};
- pinctrl_tsc: tscgrp {
- fsl,pins = <
- MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0
- MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0
- MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0
- MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0
- >;
- };
-
pinctrl_uart1: uart1grp {
fsl,pins = <
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
fsl,pins = <
MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
- MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
- MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
+ MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x1b0b1
+ MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x1b0b1
>;
};
fsl,pins = <
MX6UL_PAD_UART2_TX_DATA__UART2_DTE_RX 0x1b0b1
MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX 0x1b0b1
- MX6UL_PAD_UART3_RX_DATA__UART2_DTE_CTS 0x1b0b1
- MX6UL_PAD_UART3_TX_DATA__UART2_DTE_RTS 0x1b0b1
+ MX6UL_PAD_UART2_RTS_B__UART2_DTE_CTS 0x1b0b1
+ MX6UL_PAD_UART2_CTS_B__UART2_DTE_RTS 0x1b0b1
>;
};
pinctrl_usb_otg1_id: usbotg1idgrp {
fsl,pins = <
- MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059
+ MX6UL_PAD_UART3_TX_DATA__ANATOP_OTG1_ID 0x17059
>;
};
status = "okay";
};
-&tsc {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_tsc>;
- xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
- measure-delay-time = <0xffff>;
- pre-charge-time = <0xfff>;
- status = "okay";
-};
-
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
#include <power/pmic.h>
#include <power/pfuze3000_pmic.h>
#include "../common/pfuze.h"
+#include <environment.h>
DECLARE_GLOBAL_DATA_PTR;
PAD_CTL_SRE_FAST)
#define GPMI_PAD_CTRL2 (GPMI_PAD_CTRL0 | GPMI_PAD_CTRL1)
+#define EEPROM_BUS_NUM 1
+#define EEPROM_ADDR 0x50
+#define EEPROM_ADDR_LEN 1
+#define EEPROM_OFFSET 0xFA
+
#ifdef CONFIG_DM_PMIC
int power_init_board(void)
size_t display_count = ARRAY_SIZE(displays);
#endif
+int set_mac_eeprom(void)
+{
+ struct udevice *dev;
+ u8 buf[6];
+ int ret;
+
+ if (!env_get("ethaddr")) {
+ //If ethaddr variable is not set in environment
+ char ethaddr[18];
+ printf("Setting MAC from EEPROM\n");
+ //Configure EEPROM: 7bit address 0x50
+ ret = i2c_get_chip_for_busnum(EEPROM_BUS_NUM, EEPROM_ADDR,
+ EEPROM_ADDR_LEN, &dev);
+ if (ret) {
+ printf("Cannot find EEPROM for MAC: %d\n", ret);
+ return 0;
+ }
+ //Reading from EEPROM
+ if (dm_i2c_read(dev, EEPROM_OFFSET, (u8 *)&buf, sizeof(buf)) < 0) {
+ printf("i2c EEPROM for MAC read failed\n");
+ return 0;
+ }
+ sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X",
+ buf[0],
+ buf[1],
+ buf[2],
+ buf[3],
+ buf[4],
+ buf[5]);
+ //Set ethaddr variable for first ethernet
+ env_set("ethaddr", ethaddr);
+ sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X",
+ 0x00,
+ 0xaa,
+ buf[2],
+ buf[3],
+ buf[4],
+ buf[5]);
+ //Set eth1addr variable for second ethernet
+ env_set("eth1addr", ethaddr);
+ env_save();
+ }
+ return 0;
+}
+
int board_early_init_f(void)
{
setup_iomux_uart();
board_late_mmc_env_init();
#endif
+ set_mac_eeprom();
return 0;
}