
Hi Heiko,
Thanks very much for the link. I got it, went to the branch, applied my patches from main denx u-boot and got it to work!
The only odd thing is, I have to do this:
regulator dev vcc_lan regulator enable
Or else I can't use the networking.
When I boot up I see:
=> regulator status Name Enabled uV mA Mode ... vcc_lan disabled - - -
I've studied all of the various rk3288*.dts* examples but have no idea why the vcc_lan does not start up upon boot. My dtsi file is below. Thanks for any help.
Cheers,
Rick
#include "rk3288.dtsi"
/ { memory { device_type = "memory"; reg = <0x0 0x80000000>; };
ext_gmac: external-gmac-clock { compatible = "fixed-clock"; clock-frequency = <125000000>; clock-output-names = "ext_gmac"; #clock-cells = <0>; };
gpio-keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; autorepeat;
pinctrl-names = "default"; pinctrl-0 = <&pwrbtn>;
button@0 { gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; label = "GPIO Key Power"; linux,input-type = <1>; gpio-key,wakeup = <1>; debounce-interval = <100>; }; };
leds { u-boot,dm-pre-reloc; compatible = "gpio-leds";
power { u-boot,dm-pre-reloc; gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>; label = "sct36:blue:power"; linux,default-trigger = "default-on"; pinctrl-names = "default"; pinctrl-0 = <&power_led>; default-state = "on"; };
work { u-boot,dm-pre-reloc; gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>; label = "sct36:amber:user"; linux,default-trigger = "rc-feedback"; pinctrl-names = "default"; pinctrl-0 = <&work_led>; }; };
vcc_sys: vsys-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_sys"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; };
/* * */ vcc_sd: sdmmc-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; startup-delay-us = <100000>; vin-supply = <&vcc_io>; }; };
&cpu0 { cpu0-supply = <&vdd_cpu>; };
&emmc { broken-cd; bus-width = <8>; cap-mmc-highspeed; disable-wp; non-removable; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>; vmmc-supply = <&vcc_io>; vqmmc-supply = <&vccio_sd>; status = "okay"; };
&sdmmc { bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; card-detect-delay = <200>; disable-wp; /* wp not hooked up */ num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; supports-sd; vmmc-supply = <&vcc_sd>; vqmmc-supply = <&vccio_sd>; status = "okay"; };
&gpu { mali-supply = <&vdd_gpu>; status = "okay"; };
&gmac { assigned-clocks = <&cru SCLK_MAC>; assigned-clock-parents = <&ext_gmac>; clock_in_out = "input"; pinctrl-names = "default"; pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>; phy-supply = <&vcc_lan>; phy-mode = "rgmii"; snps,reset-active-low; snps,reset-delays-us = <0 10000 1000000>; snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; tx_delay = <0x30>; rx_delay = <0x10>; status = "okay"; };
&hdmi { ddc-i2c-bus = <&i2c5>; status = "okay"; };
&i2c0 { status = "okay"; clock-frequency = <400000>;
rk808: pmic@1b { compatible = "rockchip,rk808"; reg = <0x1b>; interrupt-parent = <&gpio0>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int &global_pwroff>; rockchip,system-power-controller; wakeup-source; #clock-cells = <1>; clock-output-names = "xin32k", "rk808-clkout2";
vcc1-supply = <&vcc_sys>; vcc2-supply = <&vcc_sys>; vcc3-supply = <&vcc_sys>; vcc4-supply = <&vcc_sys>; vcc6-supply = <&vcc_sys>; vcc7-supply = <&vcc_sys>; vcc8-supply = <&vcc_sys>; vcc9-supply = <&vcc_sys>; vcc10-supply = <&vcc_sys>; vcc11-supply = <&vcc_sys>; vcc12-supply = <&vcc_sys>; vddio-supply = <&vcc_io>;
regulators { vdd_cpu: DCDC_REG1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1350000>; regulator-name = "vdd_arm"; regulator-state-mem { regulator-off-in-suspend; }; };
vdd_gpu: DCDC_REG2 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <850000>; regulator-max-microvolt = <1250000>; regulator-name = "vdd_gpu"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; };
vcc_ddr: DCDC_REG3 { regulator-always-on; regulator-boot-on; regulator-name = "vcc_ddr"; regulator-state-mem { regulator-on-in-suspend; }; };
vcc_io: DCDC_REG4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc_io"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; };
vcc33_ldo1: LDO_REG1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc33_ldo1"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; };
vdd_10: LDO_REG3 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-name = "vdd_10"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; };
vccio_sd: LDO_REG4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-name = "vccio_sd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; };
vcc33_sd: LDO_REG5 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc33_sd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; };
vcc18_codec: LDO_REG6 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vcc18_codec"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; };
vdd10_lcd: LDO_REG7 { regulator-name = "vdd10_lcd"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; };
vcc33_ccd: LDO_REG8 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc33_ccd"; regulator-suspend-mem-disabled; };
vcc_lcd: SWITCH_REG1 { regulator-always-on; regulator-boot-on; regulator-name = "vcc_lcd"; regulator-state-mem { regulator-on-in-suspend; }; };
vcc_lan: SWITCH_REG2 { regulator-always-on; regulator-boot-on; regulator-name = "vcc_lan"; regulator-state-mem { regulator-on-in-suspend; }; }; }; }; };
&i2c2 { status = "okay"; headset: nau8825@1a { compatible = "nuvoton,nau8825"; #sound-dai-cells = <0>; reg = <0x1a>; interrupt-parent = <&gpio6>; interrupts = <5 IRQ_TYPE_LEVEL_LOW>; nuvoton,jkdet-enable = <1>; nuvoton,jkdet-pull-enable = <1>; nuvoton,jkdet-pull-up = <0>; nuvoton,jkdet-polarity = <1>; nuvoton,vref-impedance = <2>; nuvoton,micbias-voltage = <6>; nuvoton,sar-threshold-num = <4>; nuvoton,sar-threshold = <0xa 0x14 0x26 0x73>; nuvoton,sar-hysteresis = <0>; nuvoton,sar-voltage = <6>; nuvoton,sar-compare-time = <0>; nuvoton,sar-sampling-time = <0>; nuvoton,short-key-debounce = <3>; nuvoton,jack-insert-debounce = <7>; nuvoton,jack-eject-debounce = <7>; clock-names = "mclk"; clocks = <&cru SCLK_I2S0_OUT>; }; };
&i2c5 { status = "okay"; };
&wdt { status = "okay"; };
&pwm0 { status = "okay"; };
&uart0 { status = "okay"; };
&uart1 { status = "okay"; };
&uart2 { status = "okay"; };
&uart3 { status = "okay"; };
&uart4 { status = "okay"; };
&tsadc { rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ status = "okay"; };
&usbphy { status = "okay"; };
&usb_host0_ehci { status = "okay"; };
&usb_host1 { status = "okay"; };
&usb_otg { status= "okay"; };
&vopb { status = "okay"; };
&vopb_mmu { status = "okay"; };
&vopl { status = "okay"; };
&vopl_mmu { status = "okay"; };
&pinctrl { pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { drive-strength = <8>; };
pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { bias-pull-up; drive-strength = <8>; };
pcfg_output_high: pcfg-output-high { output-high; };
pcfg_output_low: pcfg-output-low { output-low; };
buttons { pwrbtn: pwrbtn { rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; }; };
leds { power_led: power-led { rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>; };
work_led: work-led { rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_none>; }; };
pmic { pmic_int: pmic-int { rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>; }; };
sdmmc { /* * Default drive strength isn't enough to achieve even * high-speed mode on EVB board so bump up to 8ma. */ sdmmc_bus4: sdmmc-bus4 { rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; };
sdmmc_clk: sdmmc-clk { rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>; };
sdmmc_cmd: sdmmc-cmd { rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; };
};
gmac { phy_int: phy-int { rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>; };
phy_pmeb: phy-pmeb { rockchip,pins = <0 7 RK_FUNC_GPIO &pcfg_pull_up>; };
phy_rst: phy-rst { rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>; }; };
usb { host_vbus_drv: host-vbus-drv { /* note: 2 10 us USB2, 2 11 is USB3 */ rockchip,pins = <2 10 RK_FUNC_GPIO &pcfg_pull_none>, <2 11 RK_FUNC_GPIO &pcfg_pull_none>; };
pwr_3g: pwr-3g { rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>; }; }; };