| // Copyright 2021 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| composite aml_cpu; |
| using fuchsia; |
| using fuchsia.google.platform; |
| using fuchsia.amlogic.platform; |
| using fuchsia.gpio; |
| using fuchsia.power; |
| |
| parent "pdev" { |
| if fuchsia.COMPATIBLE == "amlogic,cpu" { |
| true; |
| } else { |
| if fuchsia.BIND_PLATFORM_DEV_VID == fuchsia.google.platform.BIND_PLATFORM_DEV_VID.GOOGLE { |
| fuchsia.BIND_PLATFORM_DEV_DID == fuchsia.google.platform.BIND_PLATFORM_DEV_DID.GOOGLE_AMLOGIC_CPU; |
| fuchsia.BIND_PLATFORM_DEV_PID == fuchsia.google.platform.BIND_PLATFORM_DEV_PID.ASTRO; |
| } else if fuchsia.BIND_PLATFORM_DEV_VID == fuchsia.amlogic.platform.BIND_PLATFORM_DEV_VID.AMLOGIC { |
| fuchsia.BIND_PLATFORM_DEV_DID == fuchsia.amlogic.platform.BIND_PLATFORM_DEV_DID.CPU; |
| accept fuchsia.BIND_PLATFORM_DEV_PID { |
| fuchsia.amlogic.platform.BIND_PLATFORM_DEV_PID.A311D, |
| fuchsia.amlogic.platform.BIND_PLATFORM_DEV_PID.A5, |
| fuchsia.amlogic.platform.BIND_PLATFORM_DEV_PID.A1, |
| } |
| } else { |
| false; |
| } |
| } |
| } |
| |
| primary parent "power-01" { |
| fuchsia.Service == "fuchsia.hardware.power.Service"; |
| if fuchsia.NAME == "power-01" { |
| true; |
| } else { |
| fuchsia.power.POWER_DOMAIN == fuchsia.amlogic.platform.POWER_DOMAIN.ARM_CORE_BIG; |
| } |
| } |
| |
| parent "sys-pll-div16" { |
| fuchsia.Service == "fuchsia.hardware.clock.Service"; |
| fuchsia.NAME == "sys-pll-div16"; |
| } |
| |
| parent "sys-cpu-div16" { |
| fuchsia.Service == "fuchsia.hardware.clock.Service"; |
| fuchsia.NAME == "sys-cpu-div16"; |
| } |
| |
| parent "sys-cpu-big-clk" { |
| fuchsia.Service == "fuchsia.hardware.clock.Service"; |
| fuchsia.NAME == "sys-cpu-big-clk"; |
| } |
| |
| optional parent "power-02" { |
| fuchsia.Service == "fuchsia.hardware.power.Service"; |
| if fuchsia.NAME == "power-02" { |
| true; |
| } else { |
| fuchsia.power.POWER_DOMAIN == fuchsia.amlogic.platform.POWER_DOMAIN.ARM_CORE_LITTLE; |
| } |
| } |
| |
| optional parent "sys-pllb-div16" { |
| fuchsia.Service == "fuchsia.hardware.clock.Service"; |
| fuchsia.NAME == "sys-pllb-div16"; |
| } |
| |
| optional parent "sys-cpub-div16" { |
| fuchsia.Service == "fuchsia.hardware.clock.Service"; |
| fuchsia.NAME == "sys-cpub-div16"; |
| } |
| |
| optional parent "sys-cpu-little-clk" { |
| fuchsia.Service == "fuchsia.hardware.clock.Service"; |
| fuchsia.NAME == "sys-cpu-little-clk"; |
| } |
| |
| |
| optional parent "gpio-init" { |
| fuchsia.BIND_INIT_STEP == fuchsia.gpio.BIND_INIT_STEP.GPIO; |
| } |
| |
| optional parent "pin-states-0" { |
| fuchsia.Service == "fuchsia.hardware.pin.PinStatesService"; |
| } |